您好,登錄后才能下訂單哦!
yarn任務調度--capacity scheduler(容量調度) / fair scheduler(公平調度)
由于集群資源有限,當無法滿足眾多application 的資源請求時,yarn 需要適當的策略對application 的資源請求進行調度;
Scheduler 概述
Yarn 中實現的調度策略有三種:FIFO/Capacity/Fair Schedulers
(1)FIFO Scheduler:
將所有application 按提交的順序排隊,先進先出
優點---->簡單易懂且不用任何配置
缺點---->不適合于shared clusters;大的應用會將集群資源占滿從而導致大量應用等待
小結:
1、一個隊列可以使用yarn的全部資源;
2、后提交的任務必須等前面的任務運行完成之后,才可以得到資源并執行。
(2)Capacity Scheduler //此部分查看參考鏈接 講的很詳細
將application 劃分為多條任務隊列,每條隊列擁有相應的資源 在隊列的內部,資源分配遵循FIFO 策略隊列資源支持彈性調整:一個隊列的空閑資源可以分配給“饑餓”隊列(注意:一旦之前的空閑隊列需求增長,因為不支持“先占”,不能強制kill 資源container,則需要等待其他隊列釋放資源;為防止這種狀況的出現,可以配置隊列最大資源進行限制)
任務隊列支持繼承結構
小結:
最大化集群吞吐量
?核心思想
–集群資源由多個隊列分享
–空閑隊列可以把資源“借”給忙隊列
–需要時可以取回
?調度策略
–應該獲得的資源/實際獲得的資源,選擇比值最低的隊列
–隊列內FIFO
–考慮限制:單個用戶使用資源、使用其他隊列資源
(3)Fair Scheduler
不需要為特定small application 保留資源,而是在需要執行時進行動態公平分配;動態資源分配有一個延后,因為需要等待large job 釋放一部分資源 Small job 資源使用完畢后,large job 可以再次獲得全部資源 Fair Scheduler 也支持在application queue 之間進行調度
小結:
多用戶公平共享集群資源
?作業池
–每個用戶單獨資源池
–作業放進共享資源池
–每個作業最低資源保障
?調度策略
–默認FIFO
–隊列內調度策略可配置
//Fair調度器的設計目標是為所有的應用分配公平的資源(對公平的定義可以通過參數來設置)。在上面的“Yarn調度器對比圖”展示了一個隊列中兩個應用的公平調度;當然,公平調度在也可以在多個隊列間工作。舉個例子,假設有兩個用戶A和B,他們分別擁有一個隊列。當A啟動一個job而B沒有任務時,A會獲得全部集群資源;當B啟動一個job后,A的job會繼續運行,不過一會兒之后兩個任務會各自獲得一半的集群資源。如果此時B再啟動第二個job并且其它job還在運行,則它將會和B的第一個job共享B這個隊列的資源,也就是B的兩個job會用于四分之一的集群資源,而A的job仍然用于集群一半的資源,結果就是資源最終在兩個用戶之間平等的共享。
參考鏈接:
http://www.mamicode.com/info-detail-1097801.html
Hadoop 的三種調度器FIFO、Capacity Scheduler、Fair Scheduler:
https://blog.csdn.net/xiaomage510/article/details/82500067
Fair Scheduler與Capacity Scheduler比較
https://blog.51cto.com/qishi23/1599138
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。