hadoop map reduce,需要将两个mapper与一个公共的reducer结合起来

gorkyyrv  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(360)

我需要使用hadoop map reduce实现以下功能?
1) 我正在从一个源读取Map器的一个输入&从另一个不同的输入源读取另一个输入。
2) 我需要将mapper的两个输出都传递到一个reducer中,以便进一步处理。
hadoop map reduce中有没有实现上述要求的方法

lzfw57am

lzfw57am1#

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);
t30tvxxf

t30tvxxf2#

您可以创建自定义的可写文件。可以在Map器中填充相同的内容。稍后在reducer中,您可以获得定制的可写对象并执行必要的业务操作。

相关问题