點(diǎn)擊標(biāo)題下「藍(lán)色微信名」可快速關(guān)注
一、yarn簡(jiǎn)介
YARN是一個(gè)通用的資源管理模塊,可以為各類應(yīng)用程序進(jìn)行資源管理和調(diào)度?;舅枷胧菍①Y源管理和作業(yè)調(diào)度/監(jiān)視的功能拆分為多帶帶的守護(hù)程序。這個(gè)想法是擁有一個(gè)全局ResourceManager(RM)和每個(gè)應(yīng)用程序ApplicationMaster(AM)。應(yīng)用程序可以是單個(gè)作業(yè),也可以是作業(yè)的DAG。
在最早的HadoopMapReduce計(jì)算架構(gòu)中,進(jìn)行作業(yè)調(diào)度時(shí)使用FIFOScheduler。FIFO是指,所有用戶的作業(yè)都被提交到一個(gè)隊(duì)列中,然后按照作業(yè)的優(yōu)先級(jí),再按照作業(yè)提交時(shí)間的先后順序選擇將被執(zhí)行的作業(yè)。Hadoop中只有一個(gè)作業(yè)隊(duì)列,被提交的作業(yè)按照先后順序在作業(yè)隊(duì)列中排隊(duì),新來(lái)的作業(yè)插入到隊(duì)尾。一個(gè)作業(yè)運(yùn)行完成后,總是從隊(duì)首取下一個(gè)作業(yè)運(yùn)行。這種調(diào)度策略的優(yōu)點(diǎn)是簡(jiǎn)單、易于實(shí)現(xiàn),同時(shí)也減輕了JobTracker的負(fù)擔(dān)。缺點(diǎn)是,它沒(méi)有考慮到作業(yè)的緊迫程度,另外對(duì)小作業(yè)的運(yùn)行不利。因此,逐漸衍生出可以分配資源的SuperiorScheduler和CapacityScheduler。
YARN模型主要由ResourceManager、ApplicationMaster和NodeManager組成
ResourceManager:負(fù)責(zé)集群中所有資源的統(tǒng)一管理和分配。接收來(lái)自各個(gè)節(jié)點(diǎn)(NodeManager)的資源匯報(bào)信息,并根據(jù)收集的資源按照一定的策略分配給各個(gè)應(yīng)用程序。
ApplicationMaster:即圖中的AppMstr,負(fù)責(zé)一個(gè)Application生命周期內(nèi)的所有工作。包括:與RM調(diào)度器協(xié)商以獲取資源;將得到的資源進(jìn)一步分配給內(nèi)部任務(wù)(資源的二次分配);與NM通信以啟動(dòng)/停止任務(wù);監(jiān)控所有任務(wù)運(yùn)行狀態(tài),并在任務(wù)運(yùn)行失敗時(shí)重新為任務(wù)申請(qǐng)資源以重啟任務(wù)。
NodeManager(NM)是YARN中每個(gè)節(jié)點(diǎn)上的代理,管理Hadoop集群中單個(gè)計(jì)算節(jié)點(diǎn),包括與ResourceManger保持通信,監(jiān)督Container的生命周期管理,監(jiān)控每個(gè)Container的資源使用(內(nèi)存、CPU等)情況,追蹤節(jié)點(diǎn)健康狀況,管理日志和不同應(yīng)用程序用到的附屬服務(wù)(auxiliaryservice)。
1. 首先由客戶端生成Application信息,提交給ResourceManager。
2. ResourceManager為Application分配第一個(gè)Container(ApplicationMaster),并在該Container上啟動(dòng)Driver。
3. ApplicationMaster向ResourceManager申請(qǐng)資源以運(yùn)行Container(容器)。
ResourceManager分配Container給ApplicationMaster,ApplicationMaster和相關(guān)的NodeManager通訊,在獲得的Container上啟動(dòng)Executor,Executor啟動(dòng)后,開始向Driver注冊(cè)并申請(qǐng)Task。
4. Driver分配Task給Executor執(zhí)行。
5. Executor執(zhí)行Task并向Driver匯報(bào)運(yùn)行狀況。
通過(guò)yarnweb UI查詢集群資源總量,Yarn配置文件yarn-site.xml配置文件
1. 配置ResourceManager屬性(集群)
根據(jù)集群和節(jié)點(diǎn)物理CPU及內(nèi)存配置設(shè)置參數(shù)
2. 配置NodeManager屬性(節(jié)點(diǎn))
yarn.nodemanager.resource.cpu-vcores”設(shè)置當(dāng)前節(jié)點(diǎn)上NodeManager可使用的虛擬CPU核數(shù),建議按節(jié)點(diǎn)實(shí)際邏輯核數(shù)的1.5到2倍配置
“yarn.nodemanager.resource.memory-mb”設(shè)置當(dāng)前節(jié)點(diǎn)上NodeManager可使用的物理內(nèi)存大小,建議按節(jié)點(diǎn)實(shí)際物理內(nèi)存大小的75%配置
3. 配置Scheduler屬性(容器)
(1)設(shè)置容器最小最大內(nèi)存
yarn.scheduler.maximum-allocation-mb
yarn.scheduler.minimum-allocation-mb
(2)設(shè)置容器最小最大CPU
yarn.scheduler.minimum-allocation-vcores
yarn.scheduler.maximum-allocation-vcores
注:yarn.scheduler.maximum-allocation-vcores。不能高于maxResources。該屬性對(duì)于根隊(duì)列無(wú)效。
4. 配置MapReduce屬性
MapReduce向YARN請(qǐng)求三種不同的容器:應(yīng)用程序主容器,地圖容器和reduce容器。對(duì)于每種容器類型,都有一組對(duì)應(yīng)的屬性可用于設(shè)置請(qǐng)求的資源。
5. 資源故障處理
當(dāng)調(diào)度資源運(yùn)行出錯(cuò)時(shí),NodeManager進(jìn)程出現(xiàn)“java.lang.OutOfMemoryError:Direct buffermemory”的錯(cuò)誤;查詢NodeManager的日志,看是否存在錯(cuò)誤日志“OutOfMemoryError”報(bào)錯(cuò)。
運(yùn)行任務(wù)前按照實(shí)際需要配置NodeManager的相關(guān)內(nèi)存參數(shù)
堆外內(nèi)存(MB)=(Spark單個(gè)Stagetask的最大數(shù)量/可用的NodeManager數(shù)量)*32 * 機(jī)器核數(shù)/1024/1024
堆內(nèi)內(nèi)存(MB)=(Spark單個(gè)Stagetask的最大數(shù)量/可用的NodeManager數(shù)量)*512/1024/1024
參考:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceModel.html
https://support.huawei.com/hedex/hdx.do?docid=EDOC1100094387&lang=zh&idPath=22658044%7C7919788%7C9856606%7C21110924
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130038.html
CDH(Cloudera Distribution Including Apache Hadoop)是一個(gè)用于在企業(yè)中部署和管理Apache Hadoop生態(tài)系統(tǒng)的分發(fā)版本。CDH包含了Hadoop核心組件,如HDFS、YARN和MapReduce,以及許多其他工具,如Apache Hive、Apache Pig、Apache Spark和Apache HBase。 在CDH中進(jìn)行調(diào)優(yōu)的...
摘要:包括等,它們共同維護(hù)了一個(gè)事件與事件處理器的映射表,用來(lái)處理各個(gè)事件。例如內(nèi)部包含一個(gè)中央異步調(diào)度器,并注冊(cè)了等一系列事件事件處理器,由中央異步調(diào)度器統(tǒng)一管理和調(diào)度。當(dāng)狀態(tài)機(jī)轉(zhuǎn)換到最終狀態(tài)時(shí),則退出。 大數(shù)據(jù)夢(mèng)工廠( 0011 - YARN核心設(shè)計(jì)解析)1 - YARN RPC架構(gòu)設(shè)計(jì)YARN RPC Serv...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20