YARN 架構

 

一、ResourceManager(RM)

ResourceManager 將各個資源部分(計算、內存、帶寬等)精心安排給基礎 NodeManager(YARN 的每節點代理)。ResourceManager 還與 ApplicationMaster 一塊兒分配資源,與 NodeManager 一塊兒啓動和監視它們的基礎應用程序。在此上下文中,ApplicationMaster 承擔了之前的 TaskTracker 的一些角色,ResourceManager 承擔了 JobTracker 的角色。網絡

總的來講,RM有如下做用spa

  • 處理客戶端請求代理

  • 啓動或監控ApplicationMasterblog

  • 監控NodeManager內存

  • 資源的分配與調度資源

二、ApplicationMaster(AM)

ApplicationMaster 管理在YARN內運行的每一個應用程序實例。ApplicationMaster 負責協調來自 ResourceManager 的資源,並經過 NodeManager 監視容器的執行和資源使用(CPU、內存等的資源分配)。it

總的來講,AM有如下做用io

  • 負責數據的切分ast

  • 爲應用程序申請資源並分配給內部的任務class

  • 任務的監控與容錯

三、NodeManager(NM)

NodeManager管理YARN集羣中的每一個節點。NodeManager 提供針對集羣中每一個節點的服務,從監督對一個容器的終生管理到監視資源和跟蹤節點健康。

總的來講,NM有如下做用

  • 管理單個節點上的資源

  • 處理來自ResourceManager的命令

  • 處理來自ApplicationMaster的命令

四、Container

Container 是 YARN 中的資源抽象,它封裝了某個節點上的多維度資源,如內存、CPU、磁盤、網絡等,當AM向RM申請資源時,RM爲AM返回的資源即是用Container表示的。YARN會爲每一個任務分配一個Container,且該任務只能使用該Container中描述的資源。

總的來講,Container有如下做用

  • 對任務運行環境進行抽象,封裝CPU、內存等多維度的資源以及環境變量、啓動命令等任務運行相關的信息。

相關文章
相關標籤/搜索