歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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的個數;

Copyright © Linux教程網 All Rights Reserved