使用Hadoop 0.20+生成多个输出文件

我试图将我的reducer的结果输出到多个文件。 数据结果全部包含在一个文件中,其余结果根据其所尊重文件中的类别进行拆分。 我知道0.18你可以用MultipleOutputs做到这一点并且它还没有删除。 但是,我正在努力使我的应用程序符合0.20+。 现有的多输出function仍然需要JobConf(我的应用程序使用Job和Configuration)。 如何根据密钥生成多个输出?

对MultipleOutputs的支持不在0.20。 您需要使用旧版API。

它已被添加到0.21中,目前未发布为org.apache.hadoop.mapreduce.lib.output.MultipleOutputs。

邮件列表中的这个主题讨论了这个问题。

您可以在Hadoop 0.20中执行此操作,正如您所提到的那样,您必须使用较旧的API。

在http://github.com/orngejaket/Info_Moist_1_Splicer/tree/master/src/contrib/streaming/src/java/org/infochimps/hadoop/mapred/lib/中有一些非常粗略的代码。

生成的jar将每个记录写入以其(已清理)密钥命名的文件。