十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要講解了“大數(shù)據(jù)Apache Hadoop YARN工作原理是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“大數(shù)據(jù)Apache Hadoop YARN工作原理是什么”吧!
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)特克斯,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108
一、Apache Hadoop YARN基本構(gòu)成
Master/Slave結(jié)構(gòu),1 個(gè)ResourceManager(RM)對(duì)應(yīng)多個(gè) NodeManager(NM);YARN 由 Client、ResourceManager、NodeManager、ApplicationMaster (AM)組成;Client 向 RM 提交任務(wù)、殺死任務(wù)等;AM由對(duì)應(yīng)的應(yīng)用程序完成;每個(gè)應(yīng)用程序?qū)?yīng)一個(gè) AM,AM向RM申請(qǐng)資源用于在NM上啟動(dòng)相應(yīng)的 Task;NM 向 RM通過(guò)心跳信息:匯報(bào) NM健康狀況、任務(wù)執(zhí)行狀況、領(lǐng)取任務(wù)等;
大數(shù)據(jù)系列之Hadoop的資源管理模塊YARN
1、RM:整個(gè)集群只有一個(gè),負(fù)責(zé)集群資源的統(tǒng)一管理和調(diào)度:
處理來(lái)自客戶(hù)端的請(qǐng)求(啟動(dòng)/殺死應(yīng)用程序);啟動(dòng)/監(jiān)控 AM;一旦某個(gè) AM 掛了之后,RM 將會(huì)在另外一個(gè)節(jié)點(diǎn)上啟動(dòng)該 AM;監(jiān)控 NM,接收 NM的心跳匯報(bào)信息并分配任務(wù)到 NM去執(zhí)行;一旦某個(gè) NM掛了,標(biāo)志下該 NM 上的任務(wù),來(lái)告訴對(duì)應(yīng)的 AM 如何處理;負(fù)責(zé)整個(gè)集群的資源分配和調(diào)度;
2、NM:整個(gè)集群中有多個(gè),負(fù)責(zé)單節(jié)點(diǎn)資源管理和使用
周期性向 RM匯報(bào)本節(jié)點(diǎn)上的資源使用情況和各個(gè) Container 的運(yùn)行狀;接收并處理來(lái)自 RM 的 Container 啟動(dòng)/停止的各種命令;處理來(lái)自 AM的命令;負(fù)責(zé)單個(gè)節(jié)點(diǎn)上的資源管理和任務(wù)調(diào)度;
3、AM:每個(gè)應(yīng)用一個(gè),負(fù)責(zé)應(yīng)用程序的管理
數(shù)據(jù)切分;為應(yīng)用程序/作業(yè)向 RM 申請(qǐng)資源(Container),并分配給內(nèi)部任務(wù);與 NM通信以啟動(dòng)/停止任務(wù);任務(wù)監(jiān)控和容錯(cuò)(在任務(wù)執(zhí)行失敗時(shí)重新為該任務(wù)申請(qǐng)資源以重啟任務(wù));處理 RM發(fā)過(guò)來(lái)的命令:殺死 Container、讓 NM重啟等;
4、Container:對(duì)任務(wù)運(yùn)行環(huán)境的抽象
任務(wù)運(yùn)行資源(節(jié)點(diǎn)、內(nèi)存、CPU);任務(wù)啟動(dòng)命令;任務(wù)運(yùn)行環(huán)境;任務(wù)是運(yùn)行在Container中,一個(gè)Container中既可以運(yùn)行AM也可以運(yùn)行具體的Map/Reduce/MPI/SparkTask;
二、YARN工作原理
用戶(hù)向YARN 中提交應(yīng)用程序/作業(yè),其中包括 ApplicaitonMaster 程序、啟動(dòng)ApplicationMaster 的命令、用戶(hù)程序等;ResourceManager 為作業(yè)分配第一個(gè) Container,并與對(duì)應(yīng)的 NodeManager 通信,要求它在這個(gè) Containter 中啟動(dòng)該作業(yè)的 ApplicationMaster;ApplicationMaster 首 先 向 ResourceManager 注 冊(cè) , 這 樣 用 戶(hù) 可 以 直 接 通 過(guò)ResourceManager 查詢(xún)作業(yè)的運(yùn)行狀態(tài);然后它將為各個(gè)任務(wù)申請(qǐng)資源并監(jiān)控任務(wù)的運(yùn)行狀態(tài),直到運(yùn)行結(jié)束。即重復(fù)步驟 4-7;ApplicationMaster 采用輪詢(xún)的方式通過(guò) RPC 請(qǐng)求向 ResourceManager 申請(qǐng)和領(lǐng)取資源;
一旦 ApplicationMaster 申請(qǐng)到資源后,便與對(duì)應(yīng)的 NodeManager 通信,要求它啟動(dòng)任務(wù);NodeManager 啟動(dòng)任務(wù);各個(gè)任務(wù)通過(guò) RPC 協(xié)議向 ApplicationMaster 匯報(bào)自己的狀態(tài)和進(jìn)度,以讓ApplicaitonMaster 隨時(shí)掌握各個(gè)任務(wù)的運(yùn)行狀態(tài),從而可以在任務(wù)失敗時(shí)重新啟動(dòng)任務(wù);在作業(yè)運(yùn)行過(guò)程中,用戶(hù)可隨時(shí)通過(guò) RPC 向 ApplicationMaster 查詢(xún)作業(yè)當(dāng)前運(yùn)行狀態(tài);作業(yè)完成后,ApplicationMaster 向 ResourceManager 注銷(xiāo)并關(guān)閉自己;
三、YARN容錯(cuò)性
ResourceMananger基于 ZooKeeper 實(shí)現(xiàn) HA 避免單點(diǎn)故障;NodeManager執(zhí)行失敗后,ResourceManager 將失敗任務(wù)告訴對(duì)應(yīng)的 ApplicationMaster;由 ApplicationMaster 決定如何處理失敗的任務(wù);ApplicationMaster執(zhí)行失敗后,由 ResourceManager 負(fù)責(zé)重啟;ApplicationMaster 需處理內(nèi)部任務(wù)的容錯(cuò)問(wèn)題;RMAppMaster 會(huì)保存已經(jīng)運(yùn)行完成的 Task,重啟后無(wú)需重新運(yùn)行。
四、YARN調(diào)度框架
1、雙層調(diào)度框架
ResourceManager 將資源分配給 ApplicationMaster;ApplicationMaster 將資源進(jìn)一步分配給各個(gè) TASK;
2、基于資源預(yù)留的調(diào)度策略
資源不夠時(shí),會(huì)為 Task 預(yù)留,直到資源充足;描述:當(dāng)一個(gè) Task 需要 10G 資源時(shí),各個(gè)節(jié)點(diǎn)都不足 10G,那么就選擇一個(gè)節(jié)點(diǎn),但是某個(gè) NodeManager上只有 2G, 那么就在這個(gè) NodeManager上預(yù)留, 當(dāng)這個(gè) NodeManager上釋放其他資源后,會(huì)將資源預(yù)留給 10G 的作業(yè),直到攢夠 10G 時(shí),啟動(dòng) Task;缺點(diǎn):資源利用率不高,要先攢著,等到 10G 才利用,造成集群的資源利用率低;
與"all or nothing"策略不同描述:當(dāng)一個(gè)作業(yè)需要 10G 資源時(shí),節(jié)點(diǎn)都不足 10G慢慢等,等到某個(gè)節(jié)點(diǎn)上有 10G 空閑資源時(shí)再運(yùn)行,很可能會(huì)導(dǎo)致該 Task停工。
感謝各位的閱讀,以上就是“大數(shù)據(jù)Apache Hadoop YARN工作原理是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)大數(shù)據(jù)Apache Hadoop YARN工作原理是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!