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

时间:2010-02-01 21:08:30

标签: java file-io hadoop

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

2 个答案:

答案 0 :(得分:9)

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

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

邮件列表上的

This thread讨论了这个问题。

答案 1 :(得分:2)

您可以在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将每条记录写入以其(已清理)密钥命名的文件。