1. 程式人生 > >YARN組件詳細介紹

YARN組件詳細介紹

數量 com 兩個 組件 yar 協商 con 包含 app

技術分享圖片

一、ResourceManager 內部主要有兩個組件:

  1、Scheduler:這個組件完全是插拔式的,用戶可以根據自己的需求實現不同的調度器,目前YARN提供了FIFO、容量以及公平調度器。這個組件的唯一功能就是給提交到集群的應用程序分配資源,並且對可用的資源和運行的隊列進行限制。Scheduler並不對作業進行監控;

  2、ApplicationsManager (AsM):這個組件用於管理整個集群應用程序的application masters,負責接收應用程序的提交;為application master啟動提供資源;監控應用程序的運行進度以及在應用程序出現故障時重啟它。

二、NodeManager:

  是YARN中每個節點上的代理,它管理Hadoop集群中單個計算節點,根據相關的設置來啟動容器的。NodeManager會定期向ResourceManager發送心跳信息來更新其健康狀態。同時其也會監督Container的生命周期管理,監控每個Container的資源使用(內存、CPU等)情況,追蹤節點健康狀況,管理日誌和不同應用程序用到的附屬服務(auxiliary service)。

三、ApplicationMaster

  ApplicationMaster是應用程序級別的,每個ApplicationMaster管理運行在YARN上的應用程序。YARN 將 ApplicationMaster看做是第三方組件,ApplicationMaster負責和ResourceManager scheduler協商資源,並且和NodeManager通信來運行相應的task。ResourceManager 為 ApplicationMaster 分配容器,這些容器將會用來運行task。ApplicationMaster 也會追蹤應用程序的狀態,監控容器的運行進度。當容器運行完成, ApplicationMaster 將會向 ResourceManager 註銷這個容器;如果是整個作業運行完成,其也會向 ResourceManager 註銷自己,這樣這些資源就可以分配給其他的應用程序使用了。

四、Container

  Container是與特定節點綁定的,其包含了內存、CPU磁盤等邏輯資源。不過在現在的容器實現中,這些資源只包括了內存和CPU。容器是由 ResourceManager scheduler 服務動態分配的資源構成。容器授予 ApplicationMaster 使用特定主機的特定數量資源的權限。ApplicationMaster 也是在容器中運行的,其在應用程序分配的第一個容器中運行。

YARN組件詳細介紹