我正在寻找一种简单的方法来在 map reduce 作业之后链接后处理代码
具体来说,in 涉及重命名\移动由 org.apache.hadoop.mapred.lib.MultipleOutputs
创建的输出文件(该类对输出文件名有限制,所以我不能直接在 mapreduce 作业中生成文件)
我知道(或想到)的选项是:
最佳答案
您的“简单”任务应该是仅限 Mapper 的工作。您的 Map() 接收文件名作为键并重命名文件。为此,您必须编写自己的 InputFormat 和 RecordReader,就像在链接中一样,但您的 RecordReader 不应实际读取文件,只需在 getCurrentKey() 中返回文件名:
https://code.google.com/p/hadoop-course/source/browse/HadoopSamples/src/main/java/mr/wholeFile/WholeFileInputFormat.java?r=3
https://code.google.com/p/hadoop-course/source/browse/HadoopSamples/src/main/java/mr/wholeFile/WholeFileRecordReader.java?r=3
关于hadoop - 如何在 mapreduce 作业之后安排后处理任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21730414/