Hadoop Map-Reduce并行执行3个mapper,输出到1个reducer



我有一个要求,我必须根据每个数据集的不同标准过滤3个不同的数据集,最后联合它们并将它们聚合在一个reducer中。我有一个Pig脚本来完成这项工作,其中依次过滤数据集。我想知道是否有可能为每个数据集并行运行映射器,并将输出发送到1个reducer类。

尝试使用带有3个映射器的MultipleInputs来处理3个数据集。参考此链接获取MultipleInputs的API - https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/lib/input/MultipleInputs.html

的例子:

MultipleInputs.addInputPath(job1, new Path(args[1]), TextInputFormat.class, Mapper1.class);
MultipleInputs.addInputPath(job1, new Path(args[1]), TextInputFormat.class, Mapper2.class);
MultipleInputs.addInputPath(job1, new Path(args[1]), TextInputFormat.class, Mapper3.class);
job1.setReducerClass(Reducer.class);

最新更新