Hadoop YARN工作流程


hadoop基礎教程:YARN工作流程,運行在YARN上的應用程序主要分為兩類:短應用程序和長應用程序,其中,短應用程序是指一定時間內(可能是秒級、分鍾級或小時級,盡管天級別或者更長時間的也存在,但非常少)可運行完成並正常退出的應用程序,比如MapReduce作業(將在第8章介紹)、Tez DAG作業(將在第9章介紹)等,長應用程序是指不出意外,永不終止運行的應用程序,通常是一些服務,比如Storm Service(主要包括Nimbus和Supervisor兩類服務),HBase Service(包括Hmaster和RegionServer兩類服務)等,而它們本身作為一個框架提供了編程接口供用戶使用。盡管這兩類應用程序作用不同,一類直接運行數據處理程序,一類用於部署服務(服務之上再運行數據處理程序),但運行在YARN上的流程是相同的。來源:Oracle認證

當用戶向YARN中提交一個應用程序后,YARN將分兩個階段運行該應用程序:第一個階段是啟動ApplicationMaster;第二個階段是由ApplicationMaster創建應用程序,為它申請資源,並監控它的整個運行過程,直到運行完成。如圖2-11所示,YARN的工作流程分為以下幾個步驟:

步驟1 用戶向YARN中提交應用程序,其中包括ApplicationMaster程序、啟動ApplicationMaster的命令、用戶程序等。

步驟2 ResourceManager為該應用程序分配第一個Container,並與對應的Node-Manager通信,要求它在這個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注銷並關閉自己。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM