在Hadoop MapReduce中是否可以使用多个不同的映射器进行多个输入?每个映射器类都处理不同的输入集,但它们都会发出同一个reducer所消耗的键值对.请注意,我不是在谈论链接映射器,我说的是并行运行不同的映射器,而不是顺序运行.
Chr*_*ken 13
这称为连接.
您希望在mapred.*包中使用映射器和缩减器(较旧,但仍受支持).较新的包(mapreduce.*)仅允许一个映射器输入.使用mapred包,可以使用MultipleInputs类来定义连接:
MultipleInputs.addInputPath(jobConf,
new Path(countsSource),
SequenceFileInputFormat.class,
CountMapper.class);
MultipleInputs.addInputPath(jobConf,
new Path(dictionarySource),
SomeOtherInputFormat.class,
TranslateMapper.class);
jobConf.setJarByClass(ReportJob.class);
jobConf.setReducerClass(WriteTextReducer.class);
jobConf.setMapOutputKeyClass(Text.class);
jobConf.setMapOutputValueClass(WordInfo.class);
jobConf.setOutputKeyClass(Text.class);
jobConf.setOutputValueClass(Text.class);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9775 次 |
| 最近记录: |