教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

問(wèn)答>python+大數(shù)據(jù)開(kāi)發(fā)>yarn的工作流程是什么?

yarn的工作流程是什么?

來(lái)源傳智教育2022年06月28日 14時(shí)27分11秒

  YARN工作流程如下圖1-1所示。

YARN工作流程.jpg

  圖1-1 YARN工作流程示意圖

  具體工作流程如下:

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

  (2) YARN中的ResourceManager接收到客戶端應(yīng)用程序的請(qǐng)求后,ResourceManager中的調(diào)度(Scheduler)會(huì)為應(yīng)用程序分配一個(gè)容器,用于運(yùn)行本次程序?qū)?yīng)的ApplicationMaster.圖6-2中的MR App Mst表示的是MapReduce 程序的ApplicationMaster。

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

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

  (5) ResourceManager向提出申請(qǐng)的ApplicationMaster分配資源。一旦 ApplicationMaster申請(qǐng)到資源后,便與對(duì)應(yīng)的NodeManager通信,要求啟動(dòng)任務(wù)。

  (6) NodeManager為任務(wù)設(shè)置好運(yùn)行環(huán)境(包括環(huán)境變量、jar包、二進(jìn)制程序等)后,將任務(wù)啟動(dòng)命令寫到一個(gè)腳本中,并通過(guò)運(yùn)行該腳本啟動(dòng)任務(wù)。

  (7)各個(gè)任務(wù)通過(guò)某個(gè)RPC協(xié)議向ApplicationMaster匯報(bào)自已的狀態(tài)和進(jìn)度,讓ApplicationMaster隨時(shí)掌握各個(gè)任務(wù)的運(yùn)行狀態(tài),從而可以在任務(wù)失敗時(shí)重新啟動(dòng)任務(wù)。

  (8)應(yīng)用運(yùn)行結(jié)束后,ApplicationMaster向ResourceManager注銷自己,并關(guān)閉自己。如果ApplicationMaster因?yàn)榘l(fā)生故障導(dǎo)致任務(wù)失敗,那么ResourceManager中的應(yīng)用程序管理器會(huì)將其重新啟動(dòng),直到所有任務(wù)執(zhí)行完畢。

和我們?cè)诰€交談!