Hadoop Map-Reduce,需要将两个映射器与一个通用的Reducer组合在一起



我需要实现以下功能使用Hadoop Map-Reduce?

1)我正在从一个源读取映射器的一个输入,并从另一个不同的输入源读取另一个输入。

2)我需要将映射器的两个输出传递到一个减速器中进行进一步处理。

在Hadoop Map-Reduce中是否有任何上述要求

MultipleInputs.addInputPath就是你要找的。这就是您的配置的外观。确保 AnyMapper1 和 AnyMapper2 写入 MergeReducer 预期的相同输出

JobConf conf = new JobConf(Merge.class);
conf.setJobName("merge");
conf.setOutputKeyClass(IntWritable.class); 
conf.setOutputValueClass(Text.class); 
conf.setReducerClass(MergeReducer.class);
conf.setOutputFormat(TextOutputFormat.class);
MultipleInputs.addInputPath(conf, inputDir1, SequenceFileInputFormat.class, AnyMapper1.class);
MultipleInputs.addInputPath(conf, inputDir2, TextInputFormat.class, AnyMapper2.class);
FileOutputFormat.setOutputPath(conf, outputPath);

您可以创建自定义可写对象。您可以在映射器中填充相同的内容。稍后在化简器中,您可以获取自定义可写对象并执行必要的业务操作。

相关内容

  • 没有找到相关文章

最新更新