我有一个要求,我必须根据每个数据集的不同标准过滤3个不同的数据集,最后将它们合并并在化简器中进行汇总。我有一个执行作业的Pig脚本,其中数据集的筛选按顺序进行。我想知道是否有可能为每个数据集并行运行Mappers,并将输出发送到1 reducer类。

最佳答案

尝试将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);

关于java - Hadoop Map-Reduce并行执行3个Mappers并输出到1个reducer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32240751/

10-16 12:54