YARN框架:資源調度框架
在執行job.waitforcompletion(true)時候會啓動一個進程Runjar,至關於MapReduce程序提交客戶端,靠這個與集羣通訊spa
1.Runjar向ResourceManager申請一個jobblog
2.ResourceManager給Runjar返回一個job資源提交的路徑(staging- dir)和爲本job產生一個jobID隊列
3.Runjar提交資源到HDFS上去進程
4.Runjar向ResourceManager彙報提交結果內存
5.ResourceManager把本job加入任務隊列資源
6.NodeManager經過心跳機制向ResourceManager獲取任務it
7.NodeManage產生container,分配運行資源容器,包括CPU、內存等資源;同時也會把文件資源加載到容器io
此時在container中代碼、配置文件、資源都有了須要執行MapReduce,那麼在哪臺機器上運行,每一個節點執行幾個map,幾個reduce,這些YARN就不知道了,YARN只作資源管理,它不能去啓動mapreduceast
由MapReduce框架封裝的MRAPPMaster實現,就是mapreduce的應用程序的管理者,它是由YARN框架啓動的
8.啓動MRAPPMaster,到此YARN框架任務基本完成
9.MRAPPMaster向ResourceManager註冊,獲取在哪一個節點運行
map task進程叫yarnChild
10.MRAPPMaster啓動map task任務進程
11.MRAPPMaster啓動reduce task任務進程
map執行完,MRAPPMaster會通知YARN回收
12.job完成後MRAPPMaster向ResourceManager註銷本身
YARN框架,主要做用的爲ResoucceManager--------管理NodeManaer
MapReduce框架彙總,主要做用的爲MRAPPMaster-----------管理yarnChild