2015-08-27 85 views
2

我有一个需求,我必须根据每个数据集的不同标准过滤3个不同的数据集,最后将它们合并并将它们聚合到一个还原器中。我有一个Pig脚本来完成作业,其中数据集的过滤顺序发生。我想知道是否有可能为每个数据集并行运行映射器,并将输出发送到1个reducer类。Hadoop Map-Reduce并行执行3个映射器并输出到1个Reducer

回答

2

尝试使用MultipleInputs和3个映射器来处理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); 
+0

谢谢。让我尝试。 – Mohan

+0

它以我想要的方式工作。谢谢 – Mohan

相关问题