溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Yarn架構設計詳解

發(fā)布時間:2020-05-28 11:15:50 來源:網(wǎng)絡 閱讀:5213 作者:wangkunj 欄目:大數(shù)據(jù)
1.Yarn基本服務組件

Yarn是一種新的 Hadoop資源管理器,它是一個通用資源管理系統(tǒng),可為上層應用提供統(tǒng)一的資源管理和調度,它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處。

Yarn架構設計詳解

  • ResourceManager(RM):負責對各NM上的資源進行統(tǒng)一管理和調度。將AM分配空閑的Container運行并監(jiān)控其運行狀態(tài)。對AM申請的資源請求分配相應的空閑Container。主要由兩個組件構成:調度器和應用程序管理器。
  • 調度器(Scheduler):調度器根據(jù)容量、隊列等限制條件(如每個隊列分配一定的資源,最多執(zhí)行一定數(shù)量的作業(yè)等),將系統(tǒng)中的資源分配給各個正在運行的應用程序。調度器僅根據(jù)各個應用程序的資源需求進行資源分配,而資源分配單位是Container,從而限定每個任務使用的資源量。Shceduler不負責監(jiān)控或者跟蹤應用程序的狀態(tài),也不負責任務因為各種原因而需要的重啟(由ApplicationMaster負責)??傊{度器根據(jù)應用程序的資源要求,以及集群機器的資源情況,為應用程序分配封裝在Container中的資源。
    調度器是可插拔的,例如CapacityScheduler、FairScheduler。
  • 應用程序管理器(Applications Manager):應用程序管理器負責管理整個系統(tǒng)中所有應用程序,包括應用程序提交、與調度器協(xié)商資源以啟動AM、監(jiān)控AM運行狀態(tài)并在失敗時重新啟動等,跟蹤分給的Container的進度、狀態(tài)也是其職責。
  • NodeManager(NM):NM是每個節(jié)點上的資源和任務管理器。它會定時地向RM匯報本節(jié)點上的資源使用情況和各個Container的運行狀態(tài);同時會接收并處理來自AM的Container 啟動/停止等請求。
  • ApplicationMaster(AM):用戶提交的應用程序均包含一個AM,負責應用的監(jiān)控,跟蹤應用執(zhí)行狀態(tài),重啟失敗任務等。ApplicationMaster是應用框架,它負責向ResourceManager協(xié)調資源,并且與NodeManager協(xié)同工作完成Task的執(zhí)行和監(jiān)控。MapReduce就是原生支持的一種框架,可以在YARN上運行Mapreduce作業(yè)。有很多分布式應用都開發(fā)了對應的應用程序框架,用于在YARN上運行任務,例如Spark,Storm等。如果需要,我們也可以自己寫一個符合規(guī)范的YARN application。
  • Container:是YARN中的資源抽象,它封裝了某個節(jié)點上的多維度資源,如內存、CPU、磁盤、網(wǎng)絡等,當AM向RM申請資源時,RM為AM返回的資源便是用Container 表示的。YARN會為每個任務分配一個Container且該任務只能使用該Container中描述的資源。
    2.Yarn的資源管理

    1.資源調度和隔離是yarn作為一個資源管理系統(tǒng),最重要且最基礎的兩個功能。資源調度由resourcemanager完成,而資源隔離由各個nodemanager實現(xiàn)。
    2.Resourcemanager將某個nodemanager上資源分配給任務(這就是所謂的“資源調度”)后,nodemanager需按照要求為任務提供相應的資源,甚至保證這些資源應具有獨占性,為任務運行提供基礎和保證,這就是所謂的資源隔離。
    3.當談及到資源時,我們通常指內存、cpu、io三種資源。Hadoop yarn目前為止僅支持cpu和內存兩種資源管理和調度。
    4.內存資源多少決定任務的生死,如果內存不夠,任務可能運行失??;相比之下,cpu資源則不同,它只會決定任務的快慢,不會對任務的生死產(chǎn)生影響。

相關參數(shù):
memory參數(shù):

  • 1.yarn.nodemanager.resource.memory-mb
    表示該節(jié)點上yarn可以使用的物理內存總量,默認是8192m,注意,如果你的節(jié)點內存資源不夠8g,則需要調減這個值,yarn不會智能的探測節(jié)點物理內存總量 可調節(jié)為本地內存的80%
  • 2.yarn.nodemanager.vmem-pmem-ratio
    任務使用1m物理內存最多可以使用虛擬內存量,默認是2.1
  • 3.yarn.nodemanager.pmem-check-enabled
    是否啟用一個線程檢查每個任務證使用的物理內存量,如果任務超出了分配值,則直接將其kill,默認是true。
  • 4.yarn.nodemanager.vmem-check-enabled
    是否啟用一個線程檢查每個任務證使用的虛擬內存量,如果任務超出了分配值,則直接將其kill,默認是true。
  • 5.yarn.scheduler.minimum-allocation-mb
    單個任務可以使用最小物理內存量,默認1024m,如果一個任務申請物理內存量少于該值,則該對應值改為這個數(shù)。
  • 6.yarn.scheduler.maximum-allocation-mb
    單個任務可以申請的最多的內存量,默認8192m
    CPU參數(shù):
  • 1.yarn.nodemanager.resource.cpu-vcores
    表示該節(jié)點上yarn可使用的虛擬cpu個數(shù),默認是8個,注意,目前推薦將該值為與物理cpu核數(shù)相同。如果你的節(jié)點cpu合數(shù)不夠8個,則需要調減小這個值,而yarn不會智能的探測節(jié)點物理cpu總數(shù)。
  • 2.yarn.scheduler.minimum-allocation-vcores
    單個任務可申請最小cpu個數(shù),默認1,如果一個任務申請的cpu個數(shù)少于該數(shù),則該對應值被修改為這個數(shù)
  • 3.yarn.scheduler.maximum-allocation-vcores
    單個任務可以申請最多虛擬cpu個數(shù),默認是32.
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI