一 YARN組成元素及其功能
RM:YARN的管理者
NM:YARN的執行者
二 YARN工作原理
首先數據上傳到集羣中.然後將寫好的程序打成架包通過命令提交MR作業.提交到集羣后由集羣管理者MR開始調度分配資源.到HDFS讀取數據執行MapReduce相關進程對數據進行計算
三 具體流程
第一步: Client執行main()函數中runjob();開啓作業
第二步:client向RM發送作業請求同時RM將作業id以及jar包存放路徑返回給Client
第三步:Client會把Jar路徑爲前綴作業id爲後綴作爲唯一存放路徑,將jar包寫入到HDFS集羣中,默認情況下jar包寫10份,而其他數據只寫3份 當改程序運行完後刪除這些數據
第四步:Client再次將Jar存放地址(更爲詳細的描述)提交給RM.
第五步:RM將其放入調度器,向NM發送命令,NM開啓MRAPPMaster進程,MR根據HDFS中jar包數據量爲NM分配任務.
第六步:NM通過心跳機制接受調度器分配的任務
第七步:NM會開啓內部YARNChild
第八步:YARNChild根據命令到HDFS檢索作業資源,
第九步:YARNChild開啓MapTask 或者Reduce Task
第十步:map計算YARNChild調度的數據.