hadoop-yarn啓動流程分析

Hadoop YARN啓動流程

  • 一 YARN的啓動流程 spacer.gif緩存

  • wKiom1YFDJbjpLIQAAHB6EGisFk617.jpg
    YARN 啓動流程 
    1.提交應用及其使用到的資源 用戶向YARN中(RM)提交應用程序,其中包括ApplicationMaster程序、啓動ApplicationMaster的命令、用戶程序等。客戶端將應用程序所需的文件資源(外部字典、JAR包、二進制文件等)提交到 HDFS. 
    2.啓動ApplicationMaster,  ResourceManager爲該應用程序分配第一個Container(容器),並與對應的NodeManager通訊,要求它在這個Container中啓動應用程序的ApplicationMaster。ApplicationMaster與ResouceManager通訊,以請求和獲取資源。ApplicationMaster獲取到資源後,與對應的NodeManager通訊以啓動任務。若是該應用程序第一次在給節點上啓動任務,則NodeManager首先從HDFS上下載文件緩存到本地,而後啓動該任務。 
    注:分佈式緩存並非將文件緩存到集羣中各個結點的內存中,而是將文件換到各個結點的磁盤上,以便執行任務時候直接從本地磁盤上讀取文件。 
    3.註冊應用   ApplicationMaster首先向ResourceManager註冊,代表本身啓動成功,這樣用戶能夠直接經過ResourceManager查看應用程序的運行狀態,而後它將爲各個任務申請資源,並監控它的運行狀態,直到運行結束,即重複步驟4~7。 
    4.爲任務申請資源   ApplicationMaster採用輪詢的方式經過RPC協議向ResourceManager申請和領取資源。 
    5.與NM通訊啓動各個任務   一旦ApplicationMaster申請到資源後,ApplicationMaster就會將啓動命令交給NodeManager,要求它啓動任務。啓動命令裏包含了一些信息使得Container能夠與Application Master進行通訊。 
    6.NM啓動任務 NodeManager爲任務設置好運行環境(包括環境變量、JAR包、二進制程序等)後,將任務啓動命令寫到一個腳本中,並經過運行該腳本啓動任務(Container)。 
    7.執行任務 在Container內執行用戶提交的代碼,各個Container經過某個RPC協議向ApplicationMaster彙報本身的狀態和進度,以讓ApplicationMaster隨時掌握各個任務的運行狀態,從而能夠在任務失敗時從新啓動任務。 
    8.任務狀態查詢 在應用程序運行過程當中,用戶可隨時經過RPC向ApplicationMaster查詢應用程序的當前運行狀態。 
    9.運行完畢 應用程序運行完成後,ApplicationMaster向ResourceManager註銷並關閉本身。 
    二 AM與RM的詳細交互
    1.用戶向YARN ResourceManager提交應用程序,RM收到提交申請後,先向資源調度器申請用以啓動AM 的資源,待申請到資源後,再由ApplicationMasterLauncher與對應的NodeManager通訊,從而啓動應用程序的ApplicationMaster. 2.ApplicationMaster啓動完成後,ApplicationMasterLaucher會經過事件的形式,將剛剛啓動的Application Master註冊到AMLiveMonitor,以啓動心跳監控。 3.ApplicationMaster啓動後,先向ApplicatinMaterService註冊,並將本身所在host、端口號等信息彙報給它。 4.AM運行過程當中,週期性地向ApplicationMaserService回報心跳信息(信息中包含想要申請的資源描述)。 5. ApplicationMasterService每次收到ApplicationMaster心跳信息好後,將通知AMLivelinessMonitor更新應用程序的最新回報心跳的時間。 6.應用程序運行完成後,AM向AMService發送請求,註銷本身。 7.AMService收到註銷請求後,標註應用程序運行狀態完成,同時通知AMLivelinessMonitor移除對它的心跳監控。 
    三 小結
    當用戶向YARN中提交一個應用程序後,YARN將分兩個階段運行該應用程序:第一個階段是啓動 ApplicationMaster;第二個階段是由ApplicationMaster建立應用程序,爲它申請資源,並監控它的整個運行過程,直到運行完成 分佈式

相關文章
相關標籤/搜索