2016-10-01 69 views
2

我正在hadoop集羣上運行mapreduce作業,其中88個核心使用60個reducer。由於某些原因,它只使用了79個集羣核心。在開始時,它使用79個映射器運行,但是當完成一半分割時,它使用53個映射器和26個reducer,並且運行映射器的數量將在以後繼續縮小,這會增加作業完成時間。日誌說這26個減速器複製計算的數據。 是否有可能讓hadoop先運行所有映射器,然後再運行reducer? 就像在火花或tez工作,他們正在使用所有的核心進行映射,然後所有的核心減少。reducer佔用映射程序核心

回答

5

mapreduce.job.reduce.slowstart.completedmaps設爲1.0。從mapred-default.xml報價:

mapreduce.job.reduce.slowstart.completedmaps

0.05

分數作業的地圖應該是完整的前減少定作業的數量。