更新時(shí)間:2021-03-12 來源:黑馬程序員 瀏覽量:
掌握了YARN的體系結(jié)構(gòu)后,接下來看一下YARN的工作流程,具體如圖1所示。
圖1 YARN工作流程
下面針對(duì)圖1展示的YARN的工作過程進(jìn)行介紹,具體如下:
(1)用戶通過客戶端Client向YARN提交應(yīng)用程序Applicastion,提交的內(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 Mstr表示的是MapReduce程序的ApplicationMaster。
(3)ApplicationMaster被創(chuàng)建后,首先向ResourceManager注冊(cè)信息,這樣用戶可以通過ResourceManager查看應(yīng)用程序的運(yùn)行狀態(tài)。接下來的第(4)~(7)步是應(yīng)用程序的具體執(zhí)行步驟。
(4)ApplicationMaster采用輪詢的方式通過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è)腳本中,并通過運(yùn)行該腳本啟動(dòng)任務(wù)。
(7)各個(gè)任務(wù)通過某個(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í)行完畢。
猜你喜歡:
RDD數(shù)據(jù)丟失后如何恢復(fù)?RDD容錯(cuò)機(jī)制介紹
【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營】深圳跨境電商運(yùn)營畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個(gè)工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級(jí)均薪12k+
2025-09-19