2012-04-17 36 views
1

美好的一天... 我有點困惑;減少任務和減少工作有什麼區別? 這是我的情況;我已閱讀,減少不啓動,直到所有映射結束...... 但在Hadoop的輸出我看不然:只有在所有Mapper完成後才減少工作?

12/02/11 10:58:50 INFO mapred.JobClient: map 60% reduce 16% 
12/02/11 10:58:54 INFO mapred.JobClient: map 60% reduce 20% 
12/02/11 10:58:55 INFO mapred.JobClient: map 65% reduce 20% 

的降低爲16%,而地圖依然是60%... 什麼真的發生在這裏嗎?

回答

14

「減少階段」有三個階段:洗牌,排序,減少。洗牌將數據和分類組合在一起。減少是您編寫的實際功能reduce

百分比工作方式洗牌的方式是33%,排序是33%,減少是33%。你所看到的是「大約16%/ 33%(即48%)的數據已被複制到減速器中」。直到所有的製圖工作完成後,最後的33%的「減少」才能開始。

4

只要第一個映射器完成處理其輸入,reducers就開始複製輸出映射器,但是,在所有映射器完成執行任務之前,reducer無法處理輸入。其原因是Reducer可能從未完成的映射器接收更多的輸入數據,這可能會改變它處理輸入的順序。

您在控制檯上看到的reducer已完成的百分比表示減速器正在從映射器複製數據的過程中。

相關問題