無論先進先出排程器,容量排程器,還是公平排程器,他們的核心:資源分配模型是一樣的。
排程器維護著多個佇列的資訊,使用者可以向任意乙個或多個佇列提交job。每次nodemanager向resourcemanager傳送心跳時,排程器都會選擇乙個佇列,再在佇列上選擇乙個應用,然後嘗試在這個應用上分配資源。排程器優先選擇本地資源是申請請求,其次是同機架的機器,最後是任意機器。
簡言之,3種排程器就是說明如何選擇乙個佇列,如何在佇列上選擇乙個應用
先來先服務排程
(1)先來先服務的排程演算法,維護乙個後備程序/作業等待佇列,該演算法每次從後備作業佇列中選擇乙個或幾個作業進入記憶體,分配必要資源,建立的程序放入到就緒佇列中
(2)這種排程演算法不利於短作業,利於長作業。長作業如果先進入到後備佇列就會先被執行,使得後續到來的短作業擁有很長的等待時間
短作業優先排程演算法
(1)短作業優先排程演算法也只維護乙個後備作業/程序等待佇列,排程器每次選擇乙個或多個執行時間較短的作業調入記憶體,分配資源。cpu程序排程時,再從就緒佇列中選擇乙個估計執行時間最短的程序將時間片分配給它。
(2)該演算法優先排程短作業執行,當不斷有短作業進入後備記憶體時,會使得長作業無法被排程,形成「死鎖」。而且,作業的執行時間是使用者對作業執行的估計值,這種估計值會被使用者有意無意的放大或縮小,使得該演算法不能做到真正的短作業優先排程
優先順序排程演算法
(1)優先順序排程演算法從後被作業佇列中選取優先順序最高的程序調入記憶體,分配資源,加入就緒佇列。在程序排程中,cpu從就緒佇列中選擇優先順序最高的程序分配給其時間片
(2)剝奪式優先順序與非剝奪式優先順序:當有優先順序更高的程序進入就緒佇列時,處理劑是否立刻被剝奪分配給高優先順序的程序,還是要等待低優先順序的程序處理完畢再讓出處理機
(3)靜態優先順序與動態優先順序:程序在整個執行期間是保持不變還是根據程序占有的cpu時間長短,就需等待時間長短改變自身的優先順序
高相應比優先排程
(1)高相應比排程主要應用於作業排程
(2)該排程演算法是對先進先出和短作業優先的一種綜合排程,同時考慮每個作業的等待時間和估計執行時間,從中選擇響應比最高的作業投入執行
響應必\(r_p=\frac=1+\frac\)
(3)短作業:要求服務時間越短,響應必越高
長作業:隨著等待時間的增加,響應必越高
時間片輪轉排程
(1)時間片輪轉演算法把就緒程序排序成乙個佇列,程序排程演算法按照先進先出的順序依次執行,每次執行時間是乙個時間片,不論程序是否執行完畢,都會讓出處理機去處理下乙個程序。
(2)時間片輪轉排程中,如果時間片太大,每個程序都能在乙個時間片內執行完畢,則時間片輪轉演算法變成了先來先服務排程。如果時間片設定的太小,則處理機需要在程序間頻繁切換,使得處理機開銷增大,真正用於使用者程序的時間減少
(3)時間片的設定應該綜合考慮一下幾個因素:
系統響應時間,就緒佇列的程序數目,系統的處理能力
多級反饋佇列排程
(1)多級反饋佇列排程是優先順序排程演算法和時間片輪轉演算法的結合發展,該排程演算法能動態調整程序優先順序和時間片的大小,同時也不必預先估計程序的執行時間
(2)多級反饋佇列的設計思想
(3)多級反饋佇列的程序排程方式:
(4)多級反饋佇列的優勢
Yarn 資源排程策略
在yarn中有三種排程器可以選擇 fifo scheduler capacity scheduler,fair scheduler。配置方法 fifo scheduler把應用按提交的順序排成乙個佇列,這是乙個先進先出佇列,在進行資源分配的時候,先給佇列中最頭上的應用進行分配資源,待最頭上的應用需求...
YARN資源排程策略
yarn 資源排程器是直接從mr基礎上修改而來,它提供了三種可用資源排程器 fifo scheduler capacity scheduler,fair scheduler。一 排程原理 1.1 fifo scheduler fifo是hadoop設計之初提供的乙個最簡單的排程機制 即先來先服務。是...
yarn介紹及排程策略
yarn是hadoop集群當中的資源管理系統模組,從hadoop2.0開始引入yarn模組,yarn可為各類計算框架提供資源的管理和排程,主要用於管理集群當中的資源 主要是伺服器的各種硬體資源,包括cpu,記憶體,磁碟,網路io等 以及排程執行在yarn上面的各種任務。總結一句話就是說 yarn主要...