1. 程式人生 > 實用技巧 >Yarn2 基本架構

Yarn2 基本架構

Yarn 基本架構

更多整理都在我的github上:Auraros歡迎大家。
img

​ Yarn是Hadoop2.0中的資源管理系統,它的基本設計思想是將MRv1中的JobTracker拆分成兩個獨立的服務,一個全域性的資源管理器RescourceManager 和每個應用程式特有的ApplicationMaster。

​ Yarn總體上依然是Mater/Slave結構,在這裡,ResourceManager負責對各個NodeManager上的資源進行統一的管理和排程。當用戶提交一個程式時,需要提供一個跟蹤和管理這個程式的ApplicationMaster。

ResourceManager(RM)

​ RM是一個全域性的資源管理器,負責整個系統的資源管理和分配,主要由兩個元件構成:排程器(Scheduler)和應用程式管理器(Application Manager,ASM)

排程器

​ 排程器僅根據各個應用程式的資源需求進行資源分配,而資源分配單位用一個抽象概念“資源容器”(Resource Container,簡稱Container),Contaioner是一個動態資源分配單位,它將記憶體、CPU、磁碟、網路等資源封裝在一起,從而限定每個任務使用的資源量。使用者可以根據自己的需求進行排程器的更改。

應用程式管理器

​ 應用程式負責管理整個系統中所有應用程式,包括程式提交、與排程器協商資源以啟動ApplicationMaster、監控ApplicationMater執行狀態並在失敗的時候呼叫它。

ApplicationMaster(AM)

使用者提交的每個應用程式均包含一個AM,主要功能包括:

  • 與RM排程器協商以獲取資源(用Container表示)
  • 將得到的任務進一步分配給內部的任務
  • 與NM通訊以啟動/停止任務
  • 監控所有任務執行狀態,並在任務執行失敗時重新為任務申請資源以重啟任務

NodeManager(NM)

​ NM是每個節點上的資源和工作管理員,另一方面,它會定時地向RM彙報本節點上的資源使用情況和各個Container的執行狀態,另一方面,它接收並處理來自AM的Container啟動/停止等各種請求。

方面,它接收並處理來自AM的Container啟動/停止等各種請求。