我需要使用hadoop map reduce实现以下功能?1) 我正在从一个源读取Map器的一个输入&从另一个不同的输入源读取另一个输入。2) 我需要将mapper的两个输出都传递到一个reducer中,以便进一步处理。hadoop map reduce中有没有实现上述要求的方法
lzfw57am1#
MultipleInputs.addInputPath 就是你要找的。这就是您的配置的样子。确保anymapper1和anymapper2都写入mergereducer所期望的相同输出
MultipleInputs.addInputPath
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);
t30tvxxf2#
您可以创建自定义的可写文件。可以在Map器中填充相同的内容。稍后在reducer中,您可以获得定制的可写对象并执行必要的业务操作。
2条答案
按热度按时间lzfw57am1#
MultipleInputs.addInputPath
就是你要找的。这就是您的配置的样子。确保anymapper1和anymapper2都写入mergereducer所期望的相同输出t30tvxxf2#
您可以创建自定义的可写文件。可以在Map器中填充相同的内容。稍后在reducer中,您可以获得定制的可写对象并执行必要的业务操作。