2
我有一個需求,我必須根據每個數據集的不同標準過濾3個不同的數據集,最後將它們合併並將它們聚合到一個還原器中。我有一個Pig腳本來完成作業,其中數據集的過濾順序發生。我想知道是否有可能爲每個數據集並行運行映射器,並將輸出發送到1個reducer類。Hadoop Map-Reduce並行執行3個映射器並輸出到1個Reducer
我有一個需求,我必須根據每個數據集的不同標準過濾3個不同的數據集,最後將它們合併並將它們聚合到一個還原器中。我有一個Pig腳本來完成作業,其中數據集的過濾順序發生。我想知道是否有可能爲每個數據集並行運行映射器,並將輸出發送到1個reducer類。Hadoop Map-Reduce並行執行3個映射器並輸出到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);
謝謝。讓我嘗試。 – Mohan
它以我想要的方式工作。謝謝 – Mohan