天天看點

Hadoop YARN 的工作流程簡述

1、Client 向 YARN 送出應用程式,其中包括 ApplicationMaster 程式及啟動 ApplicationMaster 指令

2、ResourceManager 為該 ApplicationMaster 配置設定第一個 Container,并與對應的 NodeManager 通信,要求它在這個 Container 中啟動應用程式的 ApplicationMaster

3、ApplicationMaster 向ResourceManager 注冊

4、ApplicationMaster 為 Application 的任務申請并領取資源

5、擷取到資源後,要求對應的 NodeManager 在 Container 中啟動任務

6、NodeManager 收到 ApplicationMaster 的請求後,為任務設定好運作環境(包括環境變量、JAR 包等),将任務啟動腳本寫到一個腳本中,并通過運作該腳本啟動任務

7、各個任務通過 RPC 協定向 ApplicationMaster 彙報自己的狀态和進度,以讓 ApplicationMaster 随時掌握各個任務的運作狀态,進而可以在失敗時重新開機任務

8、應用程式完成後,ApplicationMaster 向 ResourceManager 登出并關閉自己

實際中,叢集可能并沒有那麼多資源來滿足 ApplicationMaster 的資源請求,這是 ApplicationMaster 會采用輪循的方式不斷申請資源,直到申請到資源或 Application 結束