Hadoop集群三種作業排程演算法介紹

2021-09-06 17:07:10 字數 1659 閱讀 2780

hadoop集群中有三種作業排程演算法,分別為fifo,公平排程演算法和計算能力排程演算法

先來先服務(fifo)

hadoop中預設的排程器fifo

,它先按照作業的優先順序高低,再按照到達時間的先後選擇被執行的作業。

fifo比較簡單,hadoop中只有乙個作業佇列,被提交的作業按照先後順序在作業佇列中排隊,新來的作業插入到隊尾。乙個作業執行完後,總是從隊首取 下乙個作業執行。這種排程策略的優點是簡單、易於實現,同時也減輕了jobtracker的負擔。但是它的缺點也是顯然的,它對所有的作業都一視同仁,沒 有考慮到作業的緊迫程度,另外對小作業的執行不利。

公平排程策略

這種策略在系統中配置了任務槽,乙個任務槽可以執行乙個task任務,這些任務就是乙個大的作業被切分後的小作業。當乙個使用者提交多個作業時,每個作業可 以分配到一定的任務槽以執行task任務(這裡的任務槽可以理解為可以執行乙個map任務或reduce任務)。如果把整個hadoop集群作業排程跟操 作系統的作業排程相比,第一種fifo就相當於作業系統中早期的單道批處理系統,系統中每個時刻只有一道作業在執行,而公平排程相當於多道批處理系統,它 實現了同乙個時刻多道作業同時執行。由於linux是多使用者的,若有多個使用者同時提交多個作業會怎樣?在這種策略中給每個使用者分配乙個作業池,然後給每個 作業池設定乙個最小共享槽個數,什麼是最小共享槽個數呢?先要理解乙個最小什麼意思,最小是指只要這個作業池需要,排程器應該確保能夠滿足這個作業池的最 小任務槽數的需求,但是如何才能確保在它需要的時候就有空的任務槽,一種方法是固定分配一定數量的槽給作業池不動,這個數量至少是最小任務槽值,這樣只要 在作業池需要的時候就分配給它就行了,但是這樣在這個作業池沒有用到這麼多工槽的時候會造成浪費,這種策略實際上是這樣做的,當作業池的需求沒有達到最 小任務槽數時,名義上是自己的剩餘的任務槽會被分給其他有需要的作業池,當乙個作業池需要申請任務槽的時候若系統中沒有了,這時候不會去搶占別人的(也不 知道搶誰的啊),只要當前乙個空的任務槽釋放會被立即分配給這個作業池。

在乙個使用者的作業池內,多個作業如何分配槽這個可以自行選擇了如fifo。所以這種排程策略分為兩級:

第一級,在池間分配槽,在多使用者的情況下,每個使用者分配乙個作業池。

第二級,在作業池內,每個使用者可以使用不同的排程策略。

計算能力排程

計算能力排程和公平排程有點類似,公平排程策略是以作業池為單位分配任務槽,而計算能力排程是以隊列為單位分配tasktracker(集群中乙個節 點),這種排程策略配置了多個佇列,每個佇列配置了最小額度的tasktracker數量,同公平排程策略類似,當乙個佇列有空閒的 tasktracker時,排程器會將空閒的分配給其他的佇列,當有空閒的tasktracker時,由於這時候可能有多個佇列沒有得到最小額度的 tasktracker而又在申請新的,空閒的tasktracker會被優先分配到最飢餓的佇列中去,如何衡量飢餓程度呢?可以通過計算佇列中正在執行 的任務數與其分得的計算資源之間的比值是否最低來判斷的,越低說明飢餓程度越高。

計算能力排程策略是以佇列的方式組織作業的,所以乙個使用者的作業可能在多個佇列中,如果不對使用者做一定的限制,很可能出現在多個使用者之間出現嚴重不公平的現象。所以在選中新作業執行時候,還需要考慮作業所屬的使用者是否超過了資源的限制,如果超過,作業不會被選中。

對於在同乙個佇列中,這種策略使用的是基於優先順序的fifo策略,但是不會搶占。

**:

hadoop三種排程型別

先來先服務 fifo hadoop中預設的排程器fifo,它先按照作業的優先順序高低,再按照到達時間的先後選擇被執行的作業。fifo比較簡單,hadoop中只有乙個作業佇列,被提交的作業按照先後順序在作業佇列中排隊,新來的作業插入到隊尾。乙個作業執行完後,總是從隊首取下乙個作業執行。這種排程策略的優...

Hadoop集群作業排程演算法

hadoop集群中有三種作業排程演算法,分別為 fifo 公平排程演算法和計算能力排程演算法 fifo比較簡單,hadoop 中只有乙個作業佇列,被提交的作業按照先後順序在作業佇列中排隊,新來的作業插入到隊尾。乙個作業執行完後,總是從隊首取下乙個作業執行。這種排程策略的優點是簡單 易於實現,同時也減...

Hadoop集群作業排程演算法

1.簡介 分布式檔案系統在排程作業的時候可以通過引數來設定job作業排程。開門見山,常見的有三種,先進先出fifoscheduler,預設的排程演算法,先進先出的方式處理應用,只有乙個佇列可提交應用,沒有應用優先順序可以配置 公平排程器fairscheduler,多佇列的,多使用者共享資源.程式在執...