1. 程式人生 > >雲端計算異構集群系統存在的問題

雲端計算異構集群系統存在的問題

異構集群系統存在的問題

現有的Hadoop排程器都是建立在同構叢集的假設前提下,具體假設如下:

1)叢集中各個節點的效能完全一樣

2)對於reduce task,它的三個階段:copy、sort和reduce,用時各佔1/3

3)同一job的同類型的task是一批一批完成的,他們用時基本一樣

實際當中卻不然,集群系統需要面對:

1)處理機具有不同計算速度

2)通訊能力和儲存容量

3)資料區域性性問題

如何調和不同處理機計算速度,不同機器之間資料傳輸問題以及因資料聚集帶來I/O傳輸和網路消耗問題,都是在構架異構叢集需要考慮的問題。總之把複雜應用的所有任務合理地排程分配到異構計算系統的各個處理機上, 並追求整個應用的最小完成時間的任務排程問題, 是異構叢集計算系統提高效能的一個非常關鍵的問題。

其中這些問題可以統一理解為,hadoop叢集在執行時分配到不同節點上相同計算任務在執行過程當中在開始時間、處理速度、等上存在不一致的情況下,照成有的節點計算起來一下子計算完了,有些任務需要等待很長的時間。總之就是各個節點任務結束不一致,這就要求我們採取方法讓任務執行完成基本一致,這就需要我們偵探落後任務。

解決方法:現有的Hadoop排程器存在較大缺陷,主要體現在探測落後任務的演算法上:如果一個task的進度落後於同類型task進度的20%,則把該task當做落後任務(這種任務決定了job的完成時間,需儘量縮短它的執行時間),從而為它啟動一個備份任務(speculativetask)。如果叢集異構的,對於同一個task,即使是在相同節點上的執行時間也會有較大差別,因而在異構叢集中很容易產生大量的備份任務

。減少過多的備份任務也是需要我們考慮的問題。基於現在情況下存在的問題解決方法可以參考Late排程演算法這裡就不做深入分析。