1. 程式人生 > >hadoop細節---reduce任務數量

hadoop細節---reduce任務數量

1.reduce任務的數量並非由輸入資料的大小決定,而是特別指定的。可以設定mapred.tasktracker.map.task.maximum和mapred.tasktracker.reduce.task.maximum屬性的值來指定map和reduce的數量。


2.reduce最優個數與叢集中可用的reduce任務槽相關,總槽數由節點數乘以每個節點的任務槽。


3.本地作業執行器上,只支援0個或者1個reduce任務。


4.在一個tasktracker上能同時執行的任務數取決於一臺機器有多少個處理器,還與相關作業的cpu使用情況有關,經驗法則是任務數(包括map和reduce)處理器的比值為1到2.


5.如果有多個reduce任務,則每個map輸出通過雜湊函式分割槽,每個分割槽對應一個reduce任務。


6.一個小例子: 一個客戶端有8個處理器,計劃在處理器上跑2個程序,則可以將mapred.tasktracker.map.task.maximum和mapred.tasktracker.reduce.task.maximum都設定為7(考慮還有datanode和tasktracker程序,所以那兩項不能設定為8)。