Yarn三大組件介紹


 ResourceManager

lResourceManager負責整個集群的資源管理和分配,是一個全局的資源管理系統。

lNodeManager以心跳的方式向ResourceManager匯報資源使用情況(目前主要是CPU和內存的使用情況)。RM只接受NM的資源回報信息,對於具體的資源處理則交給NM自己處理。

lYARN Scheduler根據application的請求為其分配資源,不負責application job的監控、追蹤、運行狀態反饋、啟動等工作。

NodeManager

lNodeManager是每個節點上的資源和任務管理器,它是管理這台機器的代理,負責該節點程序的運行,以及該節點資源的管理和監控YARN集群每個節點都運行一個NodeManager

lNodeManager定時向ResourceManager匯報本節點資源(CPU、內存)的使用情況和Container的運行狀態。當ResourceManager宕機時NodeManager自動連接RM備用節點。

lNodeManager接收並處理來自ApplicationMasterContainer啟動、停止等各種請求。

ApplicationMaster

l用戶提交的每個應用程序均包含一個ApplicationMaster,它可以運行在ResourceManager以外的機器上。

l負責與RM調度器協商以獲取資源(用Container表示)。

l將得到的任務進一步分配給內部的任務(資源的二次分配)

lNM通信以啟動/停止任務。

l監控所有任務運行狀態,並在任務運行失敗時重新為任務申請資源以重啟任務。

l當前YARN自帶了兩個ApplicationMaster實現,一個是用於演示AM編寫方法的實例程序DistributedShell,它可以申請一定數目的Container以並行運行一個Shell命令或者Shell腳本;另一個是運行MapReduce應用程序的AMMRAppMaster

注:RM只負責監控AM,並在AM運行失敗時候啟動它。RM不負責AM內部任務的容錯,任務的容錯由AM完成。

 

總結: 

角色

  • ResourceManager(RM):主角色 統一入口 調度資源
  • Nodemanager(NM):負責每台機器具體的資源管理
  • ApplicationMaster(AM):程序內部的老大 負責程序執行的監督管理 資源申請

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM