第一章 Yarn簡介

簡介

Yarn是Hadoop生態(tài)圈中的一個通用資源管理系統(tǒng)和調(diào)度平臺,產(chǎn)生于Hadoop2。可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度伯病,它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處否过。

產(chǎn)生的背景

Yarn是在Hadoop MRv1基礎(chǔ)上演化而來的狱从,它克服了MRv1中的各種局限性,提升了集群資源利用率叠纹,降低了運維成本,支持多種計算框架(如MR2,Spark,Flink等)敞葛,并能夠使這些計算框架共享數(shù)據(jù)誉察。

YARN基本架構(gòu)

Yarn總體上仍然是Master/Slave結(jié)構(gòu),在整個資源管理框架中惹谐,ResourceManager為Master持偏,NodeManager為Slave,ResourceManager負(fù)責(zé)對各個NodeManager上的資源進(jìn)行統(tǒng)一管理和調(diào)度氨肌。當(dāng)用戶提交一個應(yīng)用程序時鸿秆,需要提供一個用以跟蹤和管理這個程序的ApplicationMaster,它負(fù)責(zé)向ResourceManager申請資源怎囚,并要求NodeManger啟動可以占用一定資源的任務(wù)卿叽。由于不同的ApplicationMaster被分布到不同的節(jié)點上,因此它們之間不會相互影響恳守。

yarn架構(gòu).png
1. ResourceManager(RM)

RM是一個全局的資源管理器,負(fù)責(zé)整個系統(tǒng)的資源管理和分配考婴。它主要由兩個組件構(gòu)成:調(diào)度器(Scheduler)和應(yīng)用程序管理器(Applications Manager,ASM)

  • 調(diào)度器(Scheduler)

    調(diào)度器根據(jù)容量催烘、隊列等限制條件(如每個隊列分配一定的資源沥阱,最多執(zhí)行一定數(shù)量的作業(yè)等),將系統(tǒng)中的資源分配給各個正在運行的應(yīng)用程序伊群。需要注意的是考杉,該調(diào)度器是一個“純調(diào)度器”,它處理任何與具體應(yīng)用程序相關(guān)的工作舰始,比如不負(fù)責(zé)監(jiān)控或者跟蹤應(yīng)用的執(zhí)行狀態(tài)等崇棠,也不負(fù)責(zé)重新啟動因應(yīng)用執(zhí)行失敗或者硬件故障而產(chǎn)生的失敗任務(wù)陪毡,這些均交由應(yīng)用程序相關(guān)的ApplicationMaster完成煌寇。調(diào)度器僅根據(jù)各個應(yīng)用程序的資源需求進(jìn)行資源分配,而資源分配單位用一個抽象概念Container表示萧吠,Container是一個動態(tài)資源分配單位,它將內(nèi)存抽莱、CPU范抓、磁盤、網(wǎng)絡(luò)等資源封裝在一起食铐,從而限定每個任務(wù)使用的資源量匕垫。此外,該調(diào)度器是一個可插拔的組件虐呻,用戶可根據(jù)自己的需要設(shè)計新的調(diào)度器象泵,YARN提供了多種直接可用的調(diào)度器,比如Fair Scheduler和Capacity Scheduler等斟叼。

  • 應(yīng)用程序管理器(Applications Manager偶惠,ASM)

    應(yīng)用程序管理器負(fù)責(zé)管理整個系統(tǒng)中所有應(yīng)用程序,包括應(yīng)用程序提交朗涩、與調(diào)度器協(xié)商資源以啟動ApplicationMaster忽孽、監(jiān)控ApplicationMaster運行狀態(tài)并在失敗時重新啟動它等。

2. ApplicationMaster(AM)

用戶提交的每個應(yīng)用程序均包含一個AM谢床,主要功能包括:

  • 與RM調(diào)度器協(xié)商以獲取資源(以Container表示)
  • 將得到的資源(container)分配給具體的任務(wù)
  • 與NM通信,去啟動/停止任務(wù)
  • 監(jiān)控所有任務(wù)運行狀態(tài)兄一,并在任務(wù)失敗時重新為任務(wù)申請資源以重啟任務(wù)
3. NodeManager(NM)

NM是每個節(jié)點上的資源和任務(wù)管理器。

  • NM定時地向RM匯報本節(jié)點的資源使用情況和Container運行狀態(tài)
  • NM接受并處理來自AM的Container啟動/停止等各種請求
4. Container

Container是YARN中的資源抽象识腿,它封裝了某個節(jié)點上的多維資源出革,如CPU、內(nèi)存渡讼、磁盤骂束、網(wǎng)絡(luò)等。當(dāng)AM向RM申請資源時成箫,RM向AM返回的資源便是用Container表示的栖雾。YARN會為每個任務(wù)分配一個Container,且該任務(wù)只能使用該Container中描述的資源伟众。Container是一個動態(tài)資源劃分單位析藕,是根據(jù)應(yīng)用程序的需求自動生成的。目前凳厢,YARN僅支持CPU和內(nèi)存兩種資源账胧。

Yarn工作流程

運行在Yarn上的應(yīng)用程序主要分為兩類:短應(yīng)用程序和長應(yīng)用程序。其中先紫,短應(yīng)用程序是指一定時間內(nèi)可運行完成并正常退出的應(yīng)用程序治泥,如:MapReduce作業(yè)、Spark DAG作業(yè)等遮精。長應(yīng)用程序是指不出意外居夹,永不終止運行的應(yīng)用程序败潦,通常是一些服務(wù),比如Spark Streaming准脂,HBase等劫扒。

當(dāng)用戶向Yarn中提交一個應(yīng)用程序后,Yarn將分兩個階段運行該應(yīng)用程序:第一階段是啟動ApplicationMaster狸膏。第二階段是由ApplicationMaster創(chuàng)建應(yīng)用程序沟饥,為它申請資源,并監(jiān)控它的整個運行過程湾戳,直到運行完成贤旷。如下圖:

yarn工作流程.png
  1. 用戶通過Client向Yarn中提交應(yīng)用程序,其中包括ApplicationMaster程序砾脑、啟動ApplicationMaster的命令幼驶、用戶程序等。

  2. ResourceManager為該應(yīng)用程序分配第一個Container韧衣,并與對應(yīng)的NodeManager通信县遣,要求它在這個Container中啟動應(yīng)用程序的ApplicationMaster。

  3. ApplicationMaster首先向ResourceManager注冊汹族,這樣用戶就可以直接通過ApplicationMaster查看應(yīng)用程序的運行狀態(tài),然后它將為各個任務(wù)申請資源其兴,并監(jiān)控它的運行狀態(tài)顶瞒,直到運行結(jié)束,即重復(fù)步驟4~7元旬。

  4. ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請和領(lǐng)取資源榴徐。

  5. 一旦ApplicationMaster申請到資源后,便與對應(yīng)的NodeManager通信匀归,要求它啟動任務(wù)坑资。

  6. NodeManager為任務(wù)設(shè)置好運行環(huán)境(包括環(huán)境變量、JAR包穆端、二進(jìn)制程序等)后袱贮,將任務(wù)啟動命令寫到一個腳本中,并通過運行該腳本啟動任務(wù)体啰。

  7. 各個任務(wù)通過某個RPC協(xié)議向ApplicationMaster匯報自己的狀態(tài)和進(jìn)度攒巍,ApplicationMaster可隨時掌握各個任務(wù)的運行狀態(tài),從而可以在任務(wù)失敗時重新啟動任務(wù)荒勇。

  8. 應(yīng)用程序運行完成后柒莉,ApplicationMaster向ResourceManager注銷并關(guān)自己。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沽翔,一起剝皮案震驚了整個濱河市兢孝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖跨蟹,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雳殊,死亡現(xiàn)場離奇詭異,居然都是意外死亡喷市,警方通過查閱死者的電腦和手機(jī)相种,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來品姓,“玉大人寝并,你說我怎么就攤上這事「贡福” “怎么了衬潦?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長植酥。 經(jīng)常有香客問我镀岛,道長,這世上最難降的妖魔是什么友驮? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任漂羊,我火速辦了婚禮,結(jié)果婚禮上卸留,老公的妹妹穿的比我還像新娘走越。我一直安慰自己,他們只是感情好耻瑟,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布旨指。 她就那樣靜靜地躺著,像睡著了一般喳整。 火紅的嫁衣襯著肌膚如雪谆构。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天框都,我揣著相機(jī)與錄音搬素,去河邊找鬼。 笑死魏保,一個胖子當(dāng)著我的面吹牛蔗蹋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播囱淋,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼猪杭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妥衣?” 一聲冷哼從身側(cè)響起皂吮,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤戒傻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蜂筹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體需纳,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年艺挪,在試婚紗的時候發(fā)現(xiàn)自己被綠了不翩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡麻裳,死狀恐怖口蝠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情津坑,我是刑警寧澤妙蔗,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站疆瑰,受9級特大地震影響眉反,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜穆役,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一寸五、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耿币,春花似錦梳杏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叭莫。三九已至蹈集,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雇初,已是汗流浹背拢肆。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留靖诗,地道東北人郭怪。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像刊橘,于是被迫代替她去往敵國和親鄙才。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

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