ResourceManager
NodeManager:管理主機上計算資源Container
負責向MR匯報自身的狀態信息
MRAppMaster:計算任務的Master,負責申請計算資源,協調計算任務
YarnChild:負責做實際計算的任務/進程(MapTask/ReduceTask)
Container:是計算資源的抽象代表着一組內存/cpu/網絡的占用,無論是MRAppMaster還是YranChild運勢是都需要消耗一個Container邏輯
-
-
一個MR程序就是一個Job,Job的信息會給ResourceManager,ResourceManager注冊Job信息
-
ResouceManager注冊通過后,Job會拷貝相關的資源信息(從HDFS中)
-
Job緊接着會向ResourceManager提交完整的應用信息(包括資源信息)
-
ResourceManager通過Job信息計算出當前Job所需要的資源,為Job分配Container(資源的單位)
-
這個Container信息會分發給NodeManager,NodeManger會創建MRAppMaster進程
-
此時MRAppMaster會初始化Job
-
然后會查詢任務的切片
-
連接RM,請求分配資源,得到對應的資源,連接對應的NodeManager,在YarnChild上啟動對應的Container
-
從分布式文件系統上拷貝Job資源
-
執行MR程序