Yarn流程、Yarn與MapReduce 1相比
Yarn流程
可以參考《Hadoop權威指南》P79中的圖示與介紹進行理解,當然結合下面這個圖示與其中的解釋進行理解則會更加清晰易懂,當然,基本的參考個人覺得書本上的圖示要更精簡,下面這個可以說是其詳細版:
1) 用戶向YARN 中提交應用程序, 其中包括ApplicationMaster 程序、啟動ApplicationMaster 的命令、用戶程序等。
2) ResourceManager 為該應用程序分配第一個Container, 並與對應的NodeManager 通信,要求它在這個Container 中啟動應用程序的ApplicationMaster。
3) ApplicationMaster 首先向ResourceManager 註冊, 這樣用戶可以直接通過ResourceManage 查看應用程序的運行狀態,然後它將為各個任務申請資源,並監控它的運行狀態,直到運行結束,即重復步驟4~7。
4) ApplicationMaster 采用輪詢的方式通過RPC 協議向ResourceManager 申請和領取資源。
5) 一旦ApplicationMaster 申請到資源後,便與對應的NodeManager 通信,要求它啟動任務。
6) NodeManager 為任務設置好運行環境(包括環境變量、JAR 包、二進制程序等)後,將任務啟動命令寫到一個腳本中,並通過運行該腳本啟動任務。
7) 各個任務通過某個RPC 協議向ApplicationMaster 匯報自己的狀態和進度,以讓ApplicationMaster 隨時掌握各個任務的運行狀態,從而可以在任務失敗時重新啟動任務。在應用程序運行過程中,用戶可隨時通過RPC 向ApplicationMaster 查詢應用程序的當前運行狀態。
8) 應用程序運行完成後,ApplicationMaster 向ResourceManager 註銷並關閉自己。
Yarn與MapReduce 1相比
MapReduce 1 | Yarn |
---|---|
Jobtracker | ResourceManager、Application Master、TimeLine Server |
Trasktracker | NodeManager、 |
Slot | Container |
TimeLine Server即時間軸服務器,用來記錄歷史作業。
Yarn流程、Yarn與MapReduce 1相比