1. 程式人生 > >Hadoop yarn資源排程——主要元件及介紹

Hadoop yarn資源排程——主要元件及介紹

yarn的概述:

yarn是hadoop叢集當中的資源管理系統模組,從hadoop2.x開始引入yarn來進行管理叢集當中的資源(主要是伺服器的各種硬體資源,包括CPU,記憶體,磁碟,網路IO等)以及執行在yarn上面的各種任務。 yarn主要就是為了排程資源,管理任務等。其排程分為兩個層級來說: 一級排程管理: 計算資源管理 App生命週期管理 二級排程管理: App內部的計算模型管理 多樣化的計算模型

yarn的主要元件

各個元件介紹

ResourceManager:

yarn叢集的主節點,主要用於接收客戶端提交的任務,並對任務進行分配。 在每個叢集中,僅有一個,負責叢集資源的統一管理和排程。

NodeManager:

yarn叢集的從節點,主要用於任務的計算。 每個節點都有一個,負責單節點資源管理和排程。

ApplicationMaster:

當有新的任務提交到ResourceManager的時候,ResourceManager會在某個從節點nodeManager上面啟動一個ApplicationMaster程序,負責這個任務執行的資源的分配,任務的生命週期的監控等

Container:

資源的分配單位,ApplicationMaster啟動之後,與ResourceManager進行通訊,向ResourceManager提出資源申請的請求,然後ResourceManager將資源分配給ApplicationMaster,這些資源的表示,就是一個個的container. 其他服務: JobHistoryServer:這是yarn提供的一個檢視已經完成的任務的歷史日誌記錄的服務,我們可以啟動jobHistoryServer來觀察已經完成的任務的所有詳細日誌資訊 TimeLineServer:hadoop2.4.0以後出現的新特性,主要是為了監控所有執行在yarn平臺上面的所有任務(例如MR,Storm,Spark,HBase等等)

yarn當中各個主要元件的作用

resourceManager主要作用:

處理客戶端請求 啟動/監控ApplicationMaster 監控NodeManager 叢集的資源分配與排程

NodeManager主要作用:

單個節點上的資源分配與任務排程 接收並處理來自resourceManager的命令 接收並處理來自ApplicationMaster的命令 管理抽象容器container 定時向RM彙報本節點資源使用情況和各個container的執行狀態

ApplicationMaster主要作用:

資料切分 為應用程式申請資源 任務監控與容錯 負責協調來自ResourceManager的資源,開通NodeManager監視容的執行和資源使用(CPU,記憶體等的資源分配)

Container主要作用:

對任務執行環境的抽象 任務執行資源(節點,記憶體,cpu) 任務啟動命令 任務執行環境

yarn的官網文件

yarn監控介面