2015-08-27 63 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

相關問題