1. 程式人生 > >Hadoop Reducer個數設定

Hadoop Reducer個數設定

在預設情況下,一個MapReduce Job如果不設定Reducer的個數,那麼Reducer的個數為1。具體,可以通過JobConf.setNumReduceTasks(int numOfReduceTasks)方法來設定Reducer的個數。那麼,如何確定Reducer的個數呢,Hadoop documentation 推薦了兩個計算公式:

  • 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任務槽的個數。