1. 程式人生 > >Yarn執行流程

Yarn執行流程

app 部分 處理 計算 ont pan 運行環境 數據 cati

在Yarn中,JobTracker被分為兩部分:ResourceManager(RM)和ApplicationMaster(AM)。
MRv1主要由三部分組成:編程模型(API)、數據處理引擎(MapTask和ReduceTask)和運行環境(JobTracker和TaskTracker);Yarn繼承了MRv1的編程模型和數據處理引擎,改變的只是運行環境,所以對編程沒有什麽影響。

RM負責資源調度,AM 負責任務調度。

RM負責整個集群的資源管理與調度;Nodemanager(NM)負責單個節點的資源管理與調度;NM定時的通過心跳的形式與RM進行通信,報告節點的健康狀態與內存使用情況;AM通過與RM交互獲取資源,然後通過與NM交互,啟動計算任務。

在上Yarn的框架管理中,無論是AM從RM申請資源,還是NM管理自己所在節點的資源,都是通過container進行的。Container是Yarn的資源抽象,此處的資源包括內存和cup等。

不同角色的作用:
ResourceManager
NodeManager
ApplicationMaster

不同概念
Container

#Yarn執行流程:
1、用戶向YARN中提交應用程序,其中包括ApplicationMaster(AM)程序,啟動AM的命令,用戶程序等。
2、ResourceManger(RM)為該程序分配第一個Container,並與對應的NodeManger通訊,要求它在這個Container
中啟動應用程序AM。
3、AM首先向RM註冊,這樣用戶可以直接通過RM查看應用程序的運行狀態,然後將為各個任務申請資源,並監控
它的運行狀態,直到運行結束,重復4--7的步驟。
4、AM采用輪詢的方式通過RPC協議向RM申請和領取資源。
5、一旦AM申請到資源後,便與對應的NM通訊,要求它啟動任務。
6、NM為任務設置好運行環境(包括環境變量、JAR包、二進制程序等)後,將任務啟動命令寫到一個腳本中,並通過
運行該腳本啟動任務。
7、各個任務通過某個RPC協議向AM匯報自己的狀態和進度,以讓AM隨時掌握各個任務的運行狀態,從而可以在任務
失敗的時候重新啟動任務。
8、應用程序運行完成後,AM向RM註銷並關閉自己。

Yarn執行流程