2012-08-31 355 views
1

我有一個關於MapReduce FIFO調度程序的問題。我知道工作在他們到達隊列時被執行(只要他們具有相同的優先級)。我的理解是,下一份工作將等到目前的工作完成。但是,如果當前的工作沒有完全消耗容量,下一份工作可以與剩餘容量一起運行呢?在那種情況下,下一份工作會馬上執行還是等待當前的工作完成?MapReduce FIFO調度程序

如果第二個人必須等到第一個任務完成,相關的問題是當第一個任務完成其地圖任務時是否可以運行第二個任務的地圖任務。

回答

1

首先,集羣中的每個節點都有固定數量的時隙,它們平均分配給映射任務並減少任務。在FIFO調度器中,發生偏斜時效率不高。例如,如果以前的作業有一個需要「永久」完成的地圖任務或減少任務,則整個系統可能會停止。幸運的是,這不會發生,因爲MapReduce採用了投機執行。一旦檢測到散佈者,他們的克隆將在其他節點處啓動。

你的第一個問題:我認爲答案是肯定的。剩下的容量當然會被下一份工作使用。

第二個問題:當沒有剩餘容量可用時,下一個工作必須等待。當以前的作業完成其地圖任務時,這意味着地圖任務的插槽被釋放。所以下一個工作可以開始它的地圖階段。