3

我的 reducer 类使用 TextOutputFormat(Job 给出的默认 OutputFormat)生成输出。我喜欢在 MapReduce 作业完成后使用这些输出来聚合输出。除此之外,我喜欢用 TextInputFormat 写出聚合信息,以便该过程的输出可以被 MapReduce 任务的下一次迭代使用。谁能给我一个关于如何使用 TextFormat 读写的例子?顺便说一句,我使用 TextFormat 而不是 Sequence 的原因是互操作性。任何软件都应使用输出。

4

1 回答 1

5

暂时不要排除序列文件;它们使链接 MapReduce 作业变得快速和容易,如果您需要它们以用于其他事情,您可以使用“hadoop fs -text filename ”以文本格式输出它们。

但是,回到您最初的问题:要使用 TextInputFormat,请将其设置为 Job 中的输入格式,然后使用TextInputFormat.setInputPaths它指定应用作输入的文件。映射器的键应该是 LongWritable,值是 Text。

对于使用 TextOutputFormat 作为输出,在 Job 中设置为输出格式,然后使用TextOuputFormat.setOutputPath指定输出路径。您的减速器(或映射器,如果它是仅映射作业)需要NullWritable用作输出键的类型,以仅获取每行一个值的文本表示,否则每一行将是键的文本表示以及由制表符分隔的值(默认情况下,您可以通过将“ mapred.textoutputformat.separator”设置为不同的分隔符来更改它)。

于 2010-04-13T00:58:39.137 回答