首頁技術文章正文

YARN的體系結構的工作流程是怎樣的?

更新時間:2021-03-12 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif


掌握了YARN的體系結構后,接下來看一下YARN的工作流程,具體如圖1所示。


1615965310792_yarn.jpg

圖1 YARN工作流程

下面針對圖1展示的YARN的工作過程進行介紹,具體如下:

(1)用戶通過客戶端Client向YARN提交應用程序Applicastion,提交的內(nèi)容包含Application的必備信息,例如ApplicationMaster程序、啟動ApplicationMaster的命令、用戶程序等。

(2)YARN中的ResourceManager接收到客戶端應用程序的請求后,ResourceManager中的調(diào)度器(Scheduler)會為應用程序分配一個容器,用于運行本次程序?qū)腁pplicationMaster。圖6-2中的MR App Mstr表示的是MapReduce程序的ApplicationMaster。

(3)ApplicationMaster被創(chuàng)建后,首先向ResourceManager注冊信息,這樣用戶可以通過ResourceManager查看應用程序的運行狀態(tài)。接下來的第(4)~(7)步是應用程序的具體執(zhí)行步驟。

(4)ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請資源。

(5)ResourceManager向提出申請的ApplicationMaster分配資源。一旦ApplicationMaster申請到資源后,便與對應的NodeManager通信,要求它啟動任務。

(6)NodeManager為任務設置好運行環(huán)境(包括環(huán)境變量、JAR包、二進制程序等)后,將任務啟動命令寫到一個腳本中,并通過運行該腳本啟動任務。

(7)各個任務通過某個RPC協(xié)議向ApplicationMaster匯報自己的狀態(tài)和進度,以讓ApplicationMaster隨時掌握各個任務的運行狀態(tài),從而可以在任務失敗時重新啟動任務。

(8)應用運行結束后,ApplicationMaster向ResourceManager注銷自己,并關閉自己。如果ApplicationMaster因為發(fā)生故障導致任務失敗,那么ResourceManager中的應用程序管理器會將其重新啟動,直到所有任務執(zhí)行完畢。





猜你喜歡:

RDD數(shù)據(jù)丟失后如何恢復?RDD容錯機制介紹

Scala的方法和函數(shù)講解【黑馬程序員】

YARN資源管理框架的體系結構【大數(shù)據(jù)文章】

黑馬程序員大數(shù)據(jù)開發(fā)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!