一口氣搞定系列-Yarn組件

1.Yarn架構(gòu)

類似HDFS茅主,YARN也是經(jīng)典的主從(master/slave)架構(gòu)舞痰,當(dāng)然其也可以開啟 HA 模式,來提高容錯(cuò)性诀姚。

  • YARN服務(wù)由一個(gè)ResourceManager(RM)和多個(gè)NodeManager(NM)構(gòu)成
  • ResourceManager為主節(jié)點(diǎn)(master)
  • NodeManager為從節(jié)點(diǎn)(slave)

(1),ResourceMaager

1),簡介

  • ResourceManager是YARN中主(master)的角色
  • RM是一個(gè)全局的資源管理器响牛,集群只有一個(gè)active的對(duì)外提供服務(wù)
    • 負(fù)責(zé)整個(gè)系統(tǒng)的資源管理和分配
    • 包括處理客戶端請(qǐng)求
    • 啟動(dòng)/監(jiān)控 ApplicationMaster
    • 監(jiān)控 NodeManager、資源的分配與調(diào)度
  • 它主要由兩個(gè)組件構(gòu)成:
    • 調(diào)度器(Scheduler)
    • 應(yīng)用程序管理器(Applications Manager,ASM)

2),組件詳解

  • 調(diào)度器Scheduler
    • 調(diào)度器根據(jù)容量呀打、隊(duì)列等限制條件(如每個(gè)隊(duì)列分配一定的資源矢赁,最多執(zhí)行一定數(shù)量的作業(yè)等),將系統(tǒng)中的資源分配給各個(gè)正在運(yùn)行的應(yīng)用程序贬丛。
    • 需要注意的是撩银,該調(diào)度器是一個(gè)“純調(diào)度器”
      • 它不從事任何與具體應(yīng)用程序相關(guān)的工作,比如不負(fù)責(zé)監(jiān)控或者跟蹤應(yīng)用的執(zhí)行狀態(tài)等豺憔,也不負(fù)責(zé)重新啟動(dòng)因應(yīng)用執(zhí)行失敗或者硬件故障而產(chǎn)生的失敗任務(wù)额获,這些均交由應(yīng)用程序相關(guān)的ApplicationMaster完成。
      • 調(diào)度器僅根據(jù)各個(gè)應(yīng)用程序的資源需求進(jìn)行資源分配恭应,而資源分配單位用一個(gè)抽象概念“資源容器”(Resource Container抄邀,簡稱Container)表示,Container是一個(gè)動(dòng)態(tài)資源分配單位昼榛,它將內(nèi)存境肾、CPU、磁盤胆屿、網(wǎng)絡(luò)等資源封裝在一起奥喻,從而限定每個(gè)任務(wù)使用的資源量。
  • 應(yīng)用程序管理器Applications Manager非迹,ASM
    • 應(yīng)用程序管理器主要負(fù)責(zé)管理整個(gè)系統(tǒng)中所有應(yīng)用程序
    • 接收job的提交請(qǐng)求
    • 為應(yīng)用分配第一個(gè) Container 來運(yùn)行 ApplicationMaster
      • 包括應(yīng)用程序提交
      • 與調(diào)度器協(xié)商資源以啟動(dòng) ApplicationMaster
      • 監(jiān)控 ApplicationMaster 運(yùn)行狀態(tài)并在失敗時(shí)重新啟動(dòng)它等

(2),NodeManager

1),簡介

  • NodeManager 是YARN中的 從(slave) 角色
  • NodeManager :
    • 當(dāng)一個(gè)節(jié)點(diǎn)啟動(dòng)時(shí)环鲤,它會(huì)向 ResourceManager 進(jìn)行注冊(cè)并告知 ResourceManager 自己有多少資源可用。
    • 每個(gè)計(jì)算節(jié)點(diǎn)洼怔,運(yùn)行一個(gè)NodeManager進(jìn)程摹察,通過心跳(每秒 yarn.resourcemanager.nodemanagers.heartbeat-interval-ms )上報(bào)節(jié)點(diǎn)的資源狀態(tài)(磁盤,內(nèi)存,cpu等使用信息)

2),功能

  • 接收及處理來自 ResourceManager 的命令請(qǐng)求握玛,分配 Container 給應(yīng)用的某個(gè)任務(wù);

  • NodeManager 監(jiān)控本節(jié)點(diǎn)上的資源使用情況和各個(gè) Container 的運(yùn)行狀態(tài)(cpu和內(nèi)存等資源)

  • 負(fù)責(zé)監(jiān)控并報(bào)告 Container 使用信息給 ResourceManager睬棚。

  • 定時(shí)地向RM匯報(bào)以確保整個(gè)集群平穩(wěn)運(yùn)行抠忘,RM 通過收集每個(gè) NodeManager 的報(bào)告信息來追蹤整個(gè)集群健康狀態(tài)的,而 NodeManager 負(fù)責(zé)監(jiān)控自身的健康狀態(tài)结耀;

  • 處理來自 ApplicationMaster 的請(qǐng)求留夜;

  • 管理著所在節(jié)點(diǎn)每個(gè) Container 的生命周期;

  • 管理每個(gè)節(jié)點(diǎn)上的日志图甜;

    • 在運(yùn)行期碍粥,通過 NodeManager 和 ResourceManager 協(xié)同工作,這些信息會(huì)不斷被更新并保障整個(gè)集群發(fā)揮出最佳狀態(tài)黑毅。
    • NodeManager 只負(fù)責(zé)管理自身的 Container嚼摩,它并不知道運(yùn)行在它上面應(yīng)用的信息。負(fù)責(zé)管理應(yīng)用信息的組件是 ApplicationMaster

(3),Container

1),簡介

  • Container 是 YARN 中的資源抽象
    • YARN以Container為單位分配資源
    • 它封裝了某個(gè)節(jié)點(diǎn)上的多維度資源,如內(nèi)存枕面、CPU愿卒、磁盤、網(wǎng)絡(luò)等
    • 當(dāng) AM 向 RM 申請(qǐng)資源時(shí)潮秘,RM 為 AM 返回的資源便是用 Container 表示的
  • YARN 會(huì)為每個(gè)任務(wù)分配一個(gè) Container琼开,且該任務(wù)只能使用該 Container 中指定數(shù)量的資源。
  • Container 和集群NodeManager節(jié)點(diǎn)的關(guān)系是:
    • 一個(gè)NodeManager節(jié)點(diǎn)可運(yùn)行多個(gè) Container
    • 但一個(gè) Container 不會(huì)跨節(jié)點(diǎn)枕荞。
    • 任何一個(gè) job 或 application 必須運(yùn)行在一個(gè)或多個(gè) Container 中
    • 在 Yarn 框架中柜候,ResourceManager 只負(fù)責(zé)告訴 ApplicationMaster 哪些 Containers 可以用
    • ApplicationMaster 還需要去找 NodeManager 請(qǐng)求分配具體的 Container。

2),功能

  • 對(duì)task環(huán)境的抽象买猖;
  • 描述一系列信息改橘;
  • 任務(wù)運(yùn)行資源的集合(cpu、內(nèi)存玉控、io等)飞主;
  • 任務(wù)運(yùn)行環(huán)境

3),注意

  • Container 是一個(gè)動(dòng)態(tài)資源劃分單位,是根據(jù)應(yīng)用程序的需求動(dòng)態(tài)生成的
  • 目前為止高诺,YARN 僅支持 CPU 和內(nèi)存兩種資源碌识,且使用了輕量級(jí)資源隔離機(jī)制 Cgroups 進(jìn)行資源隔離。

(4),ApplicationMaster

1),簡介

ApplicationMaster 與 ResourceManager 之間的通信

  • 是整個(gè) Yarn 應(yīng)用從提交到運(yùn)行的最核心部分虱而,是 Yarn 對(duì)整個(gè)集群進(jìn)行動(dòng)態(tài)資源管理的根本步驟
  • application master周期性的向resourcemanager發(fā)送心跳筏餐,讓rm確認(rèn)appmaster的健康
  • Yarn 的動(dòng)態(tài)性,就是來源于多個(gè)Application 的 ApplicationMaster 動(dòng)態(tài)地和 ResourceManager 進(jìn)行溝通牡拇,不斷地申請(qǐng)魁瞪、釋放、再申請(qǐng)惠呼、再釋放資源的過程导俘。

2),功能

  • 獲得數(shù)據(jù)分片;
  • 為應(yīng)用程序申請(qǐng)資源并進(jìn)一步分配給內(nèi)部任務(wù)(TASK)剔蹋;
  • 任務(wù)監(jiān)控與容錯(cuò)旅薄;
  • 負(fù)責(zé)協(xié)調(diào)來自ResourceManager的資源,并通過NodeManager監(jiān)視容器的執(zhí)行和資源使用情況泣崩。

(5),JobHistorServer

作業(yè)歷史服務(wù):

記錄在yarn中調(diào)度的作業(yè)歷史運(yùn)行情況情況少梁,可以通過歷史任務(wù)日志服務(wù)器來查看hadoop的歷史任務(wù),出現(xiàn)錯(cuò)誤都應(yīng)該第一時(shí)間來查看歷史日志矫付。

2.Yarn應(yīng)用運(yùn)行原理

(1),Yarn應(yīng)用的提交過程

1),整體執(zhí)行過程

  • 步驟1:用戶將應(yīng)用程序提交到 ResourceManager 上凯沪;
  • 步驟2:ResourceManager為應(yīng)用程序 ApplicationMaster 申請(qǐng)資源,并與某個(gè) NodeManager 通信啟動(dòng)第一個(gè) Container买优,以啟動(dòng)ApplicationMaster妨马;
  • 步驟3:ApplicationMaster 與 ResourceManager 注冊(cè)進(jìn)行通信樟遣,為內(nèi)部要執(zhí)行的任務(wù)申請(qǐng)資源,一旦得到資源后身笤,將于 NodeManager 通信豹悬,以啟動(dòng)對(duì)應(yīng)的 Task;
  • 步驟4:所有任務(wù)運(yùn)行完成后液荸,ApplicationMaster 向 ResourceManager 注銷瞻佛,整個(gè)應(yīng)用程序運(yùn)行結(jié)束。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娇钱,一起剝皮案震驚了整個(gè)濱河市伤柄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌文搂,老刑警劉巖适刀,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異煤蹭,居然都是意外死亡笔喉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門硝皂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來常挚,“玉大人,你說我怎么就攤上這事稽物⊙僬保” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵贝或,是天一觀的道長吼过。 經(jīng)常有香客問我,道長咪奖,這世上最難降的妖魔是什么盗忱? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮赡艰,結(jié)果婚禮上售淡,老公的妹妹穿的比我還像新娘斤葱。我一直安慰自己慷垮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布揍堕。 她就那樣靜靜地躺著料身,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衩茸。 梳的紋絲不亂的頭發(fā)上芹血,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼幔烛。 笑死啃擦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饿悬。 我是一名探鬼主播令蛉,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼狡恬!你這毒婦竟也來了珠叔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤弟劲,失蹤者是張志新(化名)和其女友劉穎祷安,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兔乞,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡汇鞭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了庸追。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虱咧。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锚国,靈堂內(nèi)的尸體忽然破棺而出腕巡,到底是詐尸還是另有隱情,我是刑警寧澤血筑,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布绘沉,位于F島的核電站,受9級(jí)特大地震影響豺总,放射性物質(zhì)發(fā)生泄漏车伞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一喻喳、第九天 我趴在偏房一處隱蔽的房頂上張望另玖。 院中可真熱鬧,春花似錦表伦、人聲如沸谦去。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳄哭。三九已至,卻和暖如春纲熏,著一層夾襖步出監(jiān)牢的瞬間妆丘,已是汗流浹背锄俄。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勺拣,地道東北人奶赠。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像药有,于是被迫代替她去往敵國和親车柠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容