Hadoop 0.2:如何从TextOutputFormat读取输出?

时间:2010-04-09 08:46:43

标签: hadoop mapreduce

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

1 个答案:

答案 0 :(得分:5)

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

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

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