hadoop yarn的三种资源调度器详解
yarn調度器分類
FIFO(先進先出調度器)
Capacity Scheduler (容量調度器)
Fair Scheduler (公平調度器)
注意:Hadoop2.9.2 默認的資源調度器為 容量調度器
區別
FIFO調度器
先進先出,同一時間隊列中只有一個任務在執行
按照到達時間排序,先到先服務
1. 有新的服務器節點資源
2. Job1 里面包含 n個MapTask m個ReduceTask
3. 分配一個Task給該節點
容量調度器
多隊列,每個隊列內部先進先出,同一時間隊列中只有一個任務在執行
隊列的并行度為隊列的個數
1. 支持多個隊列,每個隊列可以配置一定的資源量,每個隊列采用FIFO調度策略
2. 調度器會對同一用戶提交的作業所占資源量機型限定
3. 計算每個隊列中正在運行的任務數 與 其應該分得的計算資源之間的比值,選擇一個該比值最小的隊列 (閑隊列)
4. 按照作業優先級和提交時間順序,同時考慮用戶資源量限制和內存限制對隊列內任務排序
5. 多個隊列同時按照任務的先后順序依次執行。
比如我們分為三個隊列:queueA、queueB和queueC,每個隊列的 job 按照到達時間排序。假如這里有100個slot,queueA分配20%的資源,可配置最多運行15個task,queueB 分配50%的資源,可配置最多運行25個task,queueC分配30%的資源,可配置最多運行25個task。這三個隊列同時按照任務的先后順序依次執行,比如,job11、job21和job31分別排在隊列最前面,是最先運行,也是同時運行。
公平調度器
多隊列;按照缺額排序,缺額大者優先;支持多用戶多隊列;
缺額:資源有限的情況下,每個job請求獲得的計算資源與實際獲得的計算資源存在的差距 即為缺額;
每個隊列資源量可以配置,同一隊列中的作業公平共享隊列中的所有資源;
同一隊列中,Job的資源缺額越大,越先獲得資源優先執行。作業按照缺額的高低來先后執行;
每個隊列內存按照缺額大小分配資源啟動任務;
同一時間隊列中有多個任務執行,隊列的并行度大于等于隊列的個數。
比如有三個隊列:queueA、queueB和queueC,每個隊列中的 job 按照優先級分配資源,優先級越高分配的資源越多,但是每個 job 都會分配到資源以確保公平。在資源有限的情況下,每個 job 理想情況下獲得的計算資源與實際獲得的計算資源存在一種差距, 這個差距就叫做缺額。在同一個隊列中,job的資源缺額越大,越先獲得資源優先執行。作業是按照缺額的高低來先后執行的,而且可以看到上圖有多個作業同時運行。
總結
以上是生活随笔為你收集整理的hadoop yarn的三种资源调度器详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop 2.9.2 yarn配置公
- 下一篇: 详解k8s deployment的滚动更