1 首先是通過(guò)程序員所編寫(xiě)的MR程序通過(guò)命令行本地提交或者IDE遠(yuǎn)程提交
2 一個(gè)MR程序就是一個(gè)Job,Job信息會(huì)給Resourcemanger,向Resourcemanger注冊(cè)信息
-
3 在注冊(cè)通過(guò)后,Job會(huì)拷貝相關(guān)的資源信息(從HDFS中)
4 緊接著會(huì)向Resourcemanger提交完整的Job信息(包括資源信息)
5a Resourcemanger 會(huì)通過(guò)提交的Job信息,計(jì)算出Job所需的資源,為Job分配Container資源
5b 計(jì)算資源會(huì)分發(fā)給對(duì)應(yīng)的NodeManger,NodeManager會(huì)創(chuàng)建一個(gè)MRAppMaster
6 MRAppMaster初始化Job
7 獲取輸入切片信息
8 MRAppMaster向ResourceManager 請(qǐng)求資源
9a 啟動(dòng)計(jì)算資源(連接到對(duì)應(yīng)的資源所在NodeManager)
9b 啟動(dòng)YARN Child
10 從文件系統(tǒng)中獲取完整的Job信息
11 啟動(dòng)對(duì)應(yīng)的Maptask或者ReduceTask 進(jìn)程,執(zhí)行計(jì)算。
 
|