設置Reducer的數量
在Hadoop中默認是運行一個Reducer,所有的Reduce任務都會放到單一的Reducer去執行,效率非常低下。爲了提高性能,可以適當增大Reducer的數量。
最優的Reducer數量取決於集羣中可用的Reducer任務槽的數目。Reducer任務槽的數目是集羣中節點個數與mapred.tasktracker.reduce.tasks.maximum(默認爲2)的乘積,也可以通過MapReduce的用戶界面獲得。
一個普遍的做法是將Reducer數量設置爲比Reducer任務槽數目稍微小一些,這會給Reducer任務留有餘地,同時將使得Reducer能夠在同一波中完成任務,並在Reducer階段充分使用集羣。
Reducer的數量由mapred.reduce.tasks屬性設置,通常在MapReduce作業的驅動方法中通過setNumReduceTasks(n)調用方法動態設置Reducer的數目爲n。
文章來自:http://blog.csdn.net/shuhuai007/article/details/8484806