我的reducer类使用TextOutputFormat(Job提供的默认OutputFormat)生成输出.我想在MapReduce作业完成后使用此输出来聚合输出.除此之外,我喜欢用TextInputFormat写出聚合信息,以便下一次MapReduce任务迭代可以消耗此过程的输出.谁能给我一个关于如何用TextFormat写和读的例子?顺便说一下,我使用TextFormat而不是Sequence的原因是互操作性.输出应由任何软件使用.
暂时不排除序列文件; 它们可以快速轻松地链接MapReduce作业,您可以使用"hadoop fs -text filename "以文本格式输出它们,如果您需要它们用于其他方式.
但是,回到原来的问题:使用TextInputFormat,将其设置为Job中的输入格式,然后用于TextInputFormat.setInputPaths
指定它应该用作输入的文件.映射器的关键应该是LongWritable,值为Text.
要将TextOutputFormat用作输出,请将其设置为作业中的输出格式,然后使用TextOuputFormat.setOutputPath
它指定输出路径.你的减速(或映射器,如果它是一个地图,唯一的工作)需要使用NullWritable
作为输出密钥的类型得到公正的价值观每行一个,或以其他方式每行的文本表示将是关键的文本表示和由制表符分隔的值(默认情况下,您可以通过将" mapred.textoutputformat.separator
" 设置为其他分隔符来更改此值).