更新時間:2020-11-03 來源:黑馬程序員 瀏覽量:
YARN(Yet Another Resource Negotiator,另一種資源協(xié)調者)是一個通用的資源管理系統(tǒng)和調度平臺,它的基本設計思想是將MRv1(Hadoop1.0中的MapReduce)中的JobTracker拆分為兩個獨立的任務,這兩個任務分別是全局的資源管理器ResourceManager和每個應用程序特有的ApplicationMaster。其中,ResourceManager負責整個系統(tǒng)的資源管理和分配,而ApplicationMaster負責單個應用程序的管理。接下來,我們通過一張圖來描述YARN的體系結構,具體如圖1所示。

圖1 YARN體系結構
在圖1中,YARN體系結構的核心組件有三個,具體介紹如下:
1. ResourceManager
ResourceManager是一個全局的資源管理系統(tǒng),它負責的是整個Yarn集群資源的監(jiān)控、分配和管理工作,具體工作如下:
(1) 負責處理客戶端請求
(2) 接收和監(jiān)控NodeManager(NM)的資源情況
(3) 啟動和監(jiān)控ApplicationMaster(AM)
(4) 資源的分配和調度
值得一提的是,在ResourceManager內(nèi)部包含了兩個組件,分別是調度器(Scheduler)和應用程序管理器(Application Manager),其中調度器根據(jù)容量、隊列等限制條件(如每個隊列分配一定的資源,最多執(zhí)行一定數(shù)量的作業(yè)等),將系統(tǒng)中的資源分配給各個正在運行的應用程序。該調度器是一個“純調度器”,它不再從事任何與具體應用程序相關的工作;而應用程序管理器(Applications Manager)負責管理整個系統(tǒng)中所有的應用程序,包括應用程序的提交、調度協(xié)調資源以啟動ApplicationMaster、監(jiān)控ApplicationMaster運行狀態(tài)并在失敗時重新啟動。
2.NodeManager
NodeManager是每個節(jié)點上的資源和任務管理器,一方面,它會定時的向ResourceManager匯報所在節(jié)點的資源使用情況~~,~~;另一方面,它會接收并處理來自ApplicationMaster的啟動停止容器(Container)的各種請求。
3.ApplicationMaster
用戶提交的每個應用程序都包含一個ApplicationMaster,它負責協(xié)調來自ResourceManager的資源,把獲得的資源進一步分配給內(nèi)部的各個任務,從而實現(xiàn)“二次分配”。除此之外,ApplicationMaster還會通過NodeManager監(jiān)控容器的執(zhí)行和資源使用情況,并在任務運行失敗時重新為任務申請資源以重啟任務。當前的YARN自帶了兩個ApplicationMaster的實現(xiàn),一個是用于演示ApplicationMaster編寫方法的實例程序DistributedShell,它可以申請一定數(shù)目的Container以并行方式運行一個Shell命令或者Shell腳本;另一個則是運行MapReduce應用程序的ApplicationMaster-MRAppMaster。
需要注意的是,ResourceManager負責監(jiān)控ApplicationMaster,并在ApplicationMaster運行失敗的時候重啟它,大大提高集群的拓展性。ResourceManager不負責ApplicationMaster內(nèi)部任務的容錯,任務的容錯由ApplicationMaster完成,總體來說,ApplicationMaster的主要功能是資源的調度、監(jiān)控與容錯。
猜你喜歡:
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19