Facebook : Corona的Reduce延時啓動

在MR的計算模型中,過早啓動Reduce,reduce會空等map的完成,這是資源浪費,這個資源完全可以用來執行真正需要執行的任務。
Corona的實現中,同樣考慮了Reduce的延時啓動。主要是下面三個單數來進行判斷:
# 當前job的最小map門限,如果一個job的未執行完畢的map數達到這個門限,則開始reduce的啓動
public static final String RUSH_REDUCER_MAP_THRESHOLD =    mapred.job.rushreduce.map.threshold(最小map數)

#同上,job的reduce門限     
public static final String RUSH_REDUCER_REDUCE_THRESHOLD = mapred.job.rushreduce.reduce.threshold(最小Reduce數)

# map執行完成的百分比,達到這個比例在開始啓動reduce
 mapred.reduce.slowstart.completed.maps(默認0.05F)  

代碼判斷邏輯如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章