[TOC]
成都創(chuàng)新互聯(lián)主營調(diào)兵山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),調(diào)兵山h5微信平臺小程序開發(fā)搭建,調(diào)兵山網(wǎng)站營銷推廣歡迎調(diào)兵山等地區(qū)企業(yè)咨詢
可以參考《Hadoop權(quán)威指南》P79中的圖示與介紹進行理解,當然結(jié)合下面這個圖示與其中的解釋進行理解則會更加清晰易懂,當然,基本的參考個人覺得書本上的圖示要更精簡,下面這個可以說是其詳細版:
1) 用戶向YARN 中提交應(yīng)用程序, 其中包括ApplicationMaster 程序、啟動ApplicationMaster 的命令、用戶程序等。
2) ResourceManager 為該應(yīng)用程序分配第一個Container, 并與對應(yīng)的NodeManager 通信,要求它在這個Container 中啟動應(yīng)用程序的ApplicationMaster。
3) ApplicationMaster 首先向ResourceManager 注冊, 這樣用戶可以直接通過ResourceManage 查看應(yīng)用程序的運行狀態(tài),然后它將為各個任務(wù)申請資源,并監(jiān)控它的運行狀態(tài),直到運行結(jié)束,即重復(fù)步驟4~7。
4) ApplicationMaster 采用輪詢的方式通過RPC 協(xié)議向ResourceManager 申請和領(lǐng)取資源。
5) 一旦ApplicationMaster 申請到資源后,便與對應(yīng)的NodeManager 通信,要求它啟動任務(wù)。
6) NodeManager 為任務(wù)設(shè)置好運行環(huán)境(包括環(huán)境變量、JAR 包、二進制程序等)后,將任務(wù)啟動命令寫到一個腳本中,并通過運行該腳本啟動任務(wù)。
7) 各個任務(wù)通過某個RPC 協(xié)議向ApplicationMaster 匯報自己的狀態(tài)和進度,以讓ApplicationMaster 隨時掌握各個任務(wù)的運行狀態(tài),從而可以在任務(wù)失敗時重新啟動任務(wù)。在應(yīng)用程序運行過程中,用戶可隨時通過RPC 向ApplicationMaster 查詢應(yīng)用程序的當前運行狀態(tài)。
8) 應(yīng)用程序運行完成后,ApplicationMaster 向ResourceManager 注銷并關(guān)閉自己。
MapReduce 1 | Yarn |
---|---|
Jobtracker | ResourceManager、Application Master、TimeLine Server |
Trasktracker | NodeManager、 |
Slot | Container |
TimeLine Server即時間軸服務(wù)器,用來記錄歷史作業(yè)。