分佈式概念:調度(任務和資源匹配的過程)

調度,爲用戶任務尋找合適的服務器這個過程,在分佈式領域中叫作調度。

單體調度


任務和分佈式系統中的空閒資源直接進行匹配調度。
一個集羣中只有一個節點運行調度進程,該節點對集羣中的其他節點具有訪問權限,可以蒐集其他節點的資源信息、節點狀態等進行統一管理,同時根據用戶下發的任務對資源的需求,在調度器中進行任務與資源匹配,然後根據匹配結果將任務指派給其他節點。
單體調度器擁有全局資源視圖和全局任務,可以很容易地實現對任務的約束並實施全局性的調度策略。

所有節點的資源以及用戶的任務均由中央服務器統一管理和調度。因此,中央服務器很容易成爲單點瓶頸,會直接導致其支持的調度規模和服務類型受限。

兩層調度(Mesos)


比如,業務最開始時只有批處理任務,後來發展到同時還包括流數據任務,但批處理任務是處理靜態數據,流數據任務卻是處理實時數據。
爲了提升調度效率,一層調度器只負責資源管理和分配,另外一層調度器負責任務與資源的匹配

資源的使用狀態同時由中央調度器和第二層調度器管理,
中央調度器從整體上進行資源的管理與分配,將資源分配到第二層調度器;
再由第二層調度器負責將資源與具體的任務配對,因此第二層調度可以有多個調度器,以支持不同的任務類型。

在 Mesos 中,第一層資源調度由 Mesos 提供,第二層任務調度由框架提供,Mesos 將資源以 Resource Offer 的形式發放給框架調度器,框架調度器根據任務需求和得到的資源信息進行任務匹配調度,爲此提高了調度的併發性。

Mesos 兩層調度的基本原理
1.框架向 Mesos Master 註冊;
2.Mesos Slave 節點定期或週期向 Mesos Master 上報本節點的空閒資源;
3.Mesos Master 的 Scheduler 進程收集所有節點的空閒資源信息,並以 Resource Offer 的方式將空閒資源發送給註冊的框架;
4.框架的 Scheduler 接收到 Mesos 發送的資源後,進行任務調度與匹配,匹配成功後,將匹配結果下發給 Mesos Master,並由 Mesos Master 轉發給相應節點的執行器執行任務。

Mesos 實現雙層調度時,採用 Resource Offer 機制銜接了第一層和第二層調度。Resource Offer 機制指的是,Mesos Master 主動將節點空閒資源,以類似發放(Offer)的方式發給每個框架,如果框架需要則使用,不需要則還回。
通過 Resource Offer 機制,第一層調度將資源主動告知第二層調度,然後第二層調度進行具體的任務匹配,從而實現了任務調度與資源管理的分離,Mesos Master 通過資源分配算法決定給各個 Framework 提供多少資源,而 Framework 則決定接受哪些資源,以及哪些任務使用這些資源運行。這樣一來,一個兩層調度架構就實現了。

共享狀態調度


共享狀態調度,多個調度器,每個調度器都可以看到集羣的全局資源信息,並根據這些信息進行任務調度。相較於其他兩個調度架構來說,共享狀態調度架構適用的集羣規模最大。
這種調度架構的優點是,每個調度器都可以獲取集羣中的全局資源信息,因此任務匹配算法可以實現全局最優性。但,也因爲每個調度器都可以在全局範圍內進行任務匹配,所以多個調度器同時調度時,很可能會匹配到同一個節點,從而造成資源競爭和衝突。


 

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