hadoop排程器的原理和應用場景解析

2021-09-27 05:22:40 字數 1305 閱讀 9724

前置篇:

以下是對每個部件職責的更詳細解釋。

resourcemanager:基於應用程式對資源的需求進行排程 ,每乙個應用程式需要不同型別的資源因此就需要不同的容器。資源包括:記憶體,cpu,磁碟,網路等等。資源管理器提供乙個排程策略的外掛程式,它負責將集群資源分配給多個佇列和應用程式。排程外掛程式可以基於現有的能力排程和公平排程模型。

nodemanager:是每一台機器框架的**,是執行應用程式的容器,監控應用程式的資源使用情況 (cpu,記憶體,硬碟,網路 ) 並且向排程器匯報。

正文篇:

接下來就一起研究一下包括fifo排程器、capacity排程器、fair排程器在內的三個排程器。

一、fifo排程器(先進先出排程)

上圖為fifo排程器的執行過程示意圖。

fifo scheduler是最簡單也是最容易理解的排程器,它缺點是不適用於共享集群。大的應用可能會占用所有集群資源,這就導致其它應用被阻塞。在共享集群中,更適合採用capacity scheduler或fair scheduler,這兩個排程器都允許大任務和小任務在提交的同時獲得一定的系統資源。從執行過程圖中可以看出,在fifo 排程器中,小任務會被大任務阻塞。

二、capacity排程器(容量預先分配排程)

上圖為capacity排程器的執行過程示意圖。

而對於capacity排程器,有乙個專門的佇列用來執行小任務,但是為小任務專門設定乙個佇列會預先占用一定的集群資源,這就導致大任務的執行時間會落後於使用fifo排程器時的時間。

三、fair排程器(公平分配排程)

上圖為fair排程器的執行過程示意圖。

在fair排程器中,我們不需要預先占用一定的系統資源,fair排程器會為所有執行的job動態的調整系統資源。如下圖所示,當第乙個大job提交時,只有這乙個job在執行,此時它獲得了所有集群資源;當第二個小任務提交後,fair排程器會分配一半資源給這個小任務,讓這兩個任務公平的共享集群資源。

需要注意的是,在fair排程器圖中,從第二個任務提交到獲得資源會有一定的延遲,因為它需要等待第乙個任務釋放占用的container。小任務執行完成之後也會釋放自己占用的資源,大任務又獲得了全部的系統資源。最終的效果就是fair排程器即得到了高的資源利用率又能保證小任務及時完成。

Hadoop的排程器

隨著mapreduce的流行,其開源實現hadoop也變得越來越受推崇。在hadoop系統中,有乙個元件非常重要,那就是排程器,它的作用是將系統中空閒的資源按一定策略分配給作業。在hadoop中,排程器是乙個可插拔的模組,使用者可以根據自己的實際應用要求設計排程器。hadoop中常見的排程器有三種,...

Hadoop的排程器

隨著mapreduce的流行,其開源實現hadoop也變得越來越受推崇。在hadoop系統中,有乙個元件非常重要,那就是排程器,它的作用是將系統中空閒的資源按一定策略分配給作業。在hadoop中,排程器是乙個可插拔的模組,使用者可以根據自己的實際應用要求設計排程器。hadoop中常見的排程器有三種,...

Hadoop的排程器總結

1 預設的排程器fifo hadoop中預設的排程器,它先按照作業的優先順序高低,再按照到達時間的先後選擇被執行的作業。2 計算能力排程器capacity scheduler 支援多個佇列,每個佇列可配置一定的資源量,每個佇列採用fifo排程策略,為了防止同乙個使用者的作業獨佔佇列中的資源,該排程器...