我看到,只要我運行Map Reduce任務,hadoop作業就會顯示完成的Map和Reduce任務的百分比。hadoop控制器如何計算完成的工作百分比?
我明白映射器和縮減器都是以分佈式方式運行,並且可以報告他們已經處理了多少控制器。
但是,控制器如何知道要處理的總數據?如果控制器試圖找出所有輸入文件的大小,那麼我的圖像效率會很低。這是粗略的近似嗎?
我看到,只要我運行Map Reduce任務,hadoop作業就會顯示完成的Map和Reduce任務的百分比。hadoop控制器如何計算完成的工作百分比?
我明白映射器和縮減器都是以分佈式方式運行,並且可以報告他們已經處理了多少控制器。
但是,控制器如何知道要處理的總數據?如果控制器試圖找出所有輸入文件的大小,那麼我的圖像效率會很低。這是粗略的近似嗎?
我沒看過所有與此相關的部分在Hadoop的代碼。但有些人認爲它,希望它有助於
地圖任務完成百分比計算:在子機完成一個地圖的任務,它會讓主控機器知道,所以很方便了主機和控制器知道地圖任務競爭的百分比,但如果過程被阻止或被殺死,則此過程完成的任務將被重新分配,並且地圖完成值將會減少。
減少任務完成百分比計算:減少短語包括洗牌任務和減少任務,洗牌任務開始時地圖任務完成達到5%,洗牌任務主要從地圖任務輸出目錄複製數據。所以複製的數據似乎是混洗部分的領域因素,因爲合併排序可以同時運行。在減少任務中,可以通過「迭代器」的處理方式來輕鬆計算完成百分比。
PS:如vehtfym在註釋所提及般:降低階段包括複製(在33%精加工),排序(在66%精加工)和降低(以100%的精加工)
好點整體。減少階段包括「複製」(完成33%),「排序」(完成66%)和「減少」(完成100%)。通過'mapred.reduce.slowstart.completed.maps',我認爲reduce開始的map的百分比是不相關的,並且可以進行不同的配置。您還可以使用記者的方法手動指定/更改每個階段的狀態。 – vefthym