【Yarn】資源調度器

資源調度器是什麼?

Yarn中負責集羣資源分配的是Scheduler。

分成三種類型:FIFO Scheduler,Capacity Scheduler,Fair Scheduler。

FIFO Scheduler:先進先出隊列,任務先提交就會被先執行,優先滿足最先被提交的任務,之後若有空餘資源再分配給後續的任務。缺點是一個任務將集羣資源耗盡,其他任務就只能等待資源被釋放後才能繼續執行,否則一直被阻塞。即小任務會被大任務阻塞

Capacity Scheduler。Hadoop2.7.2默認的資源調度器。支持多個隊列,每個隊列是FIFO調度。

例如集羣的資源被分到了A,B兩個隊列中,

A隊列佔用60%的資源,B隊列佔用40%的資源。

root
------a[60%]
      |---a.bi[40%]
      |---a.realtime[60%]
------b[40%]

當用戶向a提交了一個任務,此任務可以佔用100%的集羣資源(集羣中僅此一個任務,沒有其他任務),當向b隊列提交了任務後,隊列a會慢慢地釋放佔用的資源,達到的平衡狀態是隊列a使用60%的資源運行一個任務,隊列b使用40%的資源運行一個任務。

特點:

  1. 層次化設計:子隊列可以使用父隊列的資源,這樣可以合理分配、限制資源。
  2. 容量設計:每個隊列/任務都不會用盡集羣資源,有任務資源閾值

 

 

 

 

 

 

 

 

 

 

Fair Scheduler,支持多隊列、多用戶,一個隊列的所有job都會得到執行,按照資源差額(隊列中已有的資源與任務需要的資源)來評定任務執行的優先級。

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