Yarn架構(gòu)設(shè)計詳解

1.Yarn基本服務(wù)組件

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

創(chuàng)新互聯(lián)公司成立于2013年,先為新樂等服務(wù)建站,新樂等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新樂企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Yarn架構(gòu)設(shè)計詳解

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

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

相關(guān)參數(shù):
memory參數(shù):

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

當(dāng)前標(biāo)題:Yarn架構(gòu)設(shè)計詳解
本文鏈接:http://muchs.cn/article42/iepgec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站排名、網(wǎng)站維護(hù)、定制網(wǎng)站、品牌網(wǎng)站設(shè)計、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)