1. 程式人生 > >MapReduce中如何控制reducer的數量

MapReduce中如何控制reducer的數量

1,在預設情況下,一個mapreduce的job只有一個reducer;在大型叢集中,需要使用許多reducer,中間資料都會放到一個reducer中處理,如果reducer數量不夠,會成為計算瓶頸。

2,reducer的最優個數與叢集中可用的reducer的任務槽數相關,一般設定比總槽數稍微少一些的reducer數量;hadoop文件中推薦了兩個公式:

0.95*NUMBER_OF_NODES*mapred.tasktracker.reduce.tasks.maximum

1.75*NUMBER_OF_NODES*mapred.tasktracker.reduce.tasks.maximum

備註:NUMBER_OF_NODES是叢集中的計算節點個數;

mapred.tasktracker.reduce.tasks.maximum:每個節點所分配的reducer任務槽的個數;

3,在程式碼中通過:JobConf.setNumReduceTasks(Int numOfReduceTasks)方法設定reducer的個數;
--------------------- 
作者:播種生活 
來源:CSDN 
原文:https://blog.csdn.net/momomi_2005/article/details/23050605 
版權宣告:本文為博主原創文章,轉載請附上博文連結!