處理過程:
1.mp程序產(chǎn)生RunJar進(jìn)程向resource manager申請執(zhí)行一個job
2.resource manager返回job相關(guān)資源提交的路徑staging-dir和為本job生成的jobID
3.mp程序向HDFS提交資源到對于的staging-dir路徑下
4.mp程序向resourcemanager反饋提交結(jié)果
5.resourcemanager將job加入任務(wù)隊(duì)列中,并指定此job分配到哪些node manager去執(zhí)行任務(wù),node manager通過心跳機(jī)制與resource manager保持通信。
6.node manager去檢查resource manager的任務(wù)隊(duì)列,如果發(fā)現(xiàn)新的job則領(lǐng)取任務(wù)。
7.YARN框架為每個node manager為此任務(wù)分配資源(CPU,內(nèi)存),產(chǎn)生一個container運(yùn)行資源容器。
8.YARN框架僅僅是為job分配資源,并不知道程序如何運(yùn)行,而job程序需要MapReduce運(yùn)行。因此resource manager 啟動MRAppMaster。
9.MRAppMaster向resource manager進(jìn)行注冊。
10.MRAppMaster 在 container運(yùn)行資源容器中生成map task(yarnChild進(jìn)程),啟動MapReduce程序,并監(jiān)控運(yùn)行情況。
11.當(dāng)?map --> shuffle 完成后,MRAppMaster 在?container運(yùn)行資源容器中生成reduce task進(jìn)程
12.job完成后向resourcemanager注銷自己,釋放資源?
