Hadoop yarn運(yùn)行機(jī)制及調(diào)度過程知識(shí)

????????hadoop主要組件有hdfs、yarn,hdfs是分布式文件系統(tǒng),主要是進(jìn)行文件的存儲(chǔ),而yarn是hadoop集群資源管理系統(tǒng),支持分布式計(jì)算模式,下面將介紹yarn的運(yùn)行和調(diào)度過程。

? ? ?yarn運(yùn)行機(jī)制

? ? ? ? yarn通過管理集群資源使用的資源管理器和運(yùn)行在集群節(jié)點(diǎn)上啟動(dòng)、監(jiān)控容器的節(jié)點(diǎn)管理器兩類長(zhǎng)期運(yùn)行的守護(hù)進(jìn)程提供核心服務(wù)。提到的容器是用于執(zhí)行特定應(yīng)用程序的進(jìn)程,每個(gè)容器都有資源限制(內(nèi)存、cpu),一個(gè)容器是一個(gè)linux進(jìn)程即Linux cgroup。

圖-yarn應(yīng)用運(yùn)行機(jī)制

????????yarn上運(yùn)行一個(gè)應(yīng)用步驟:

? ? ? ? 1、客戶端聯(lián)系資源管理器,要求運(yùn)行一個(gè)application master進(jìn)程(上圖步驟1)。

? ? ? ? 2、資源管理其找到一個(gè)能夠在容器啟動(dòng)application master的節(jié)點(diǎn)管理器(上圖步驟2a、2b)。

? ? ? ? 3、application master運(yùn)行后,根據(jù)應(yīng)用本身向資源管理器請(qǐng)求更多容器(上圖步驟3)。

? ? ? ? 4、資源管理器給application master分配需要的資源后,application master在對(duì)應(yīng)資源節(jié)點(diǎn)管理器啟動(dòng)容器,節(jié)點(diǎn)管理器獲取任務(wù)運(yùn)行需要的resources后,在該容器運(yùn)行任務(wù)。(上圖4a、4b)。

? ? ? ? 下面對(duì)運(yùn)行機(jī)制中對(duì)資源管理部分細(xì)節(jié)進(jìn)行展開細(xì)化:

? ? ? ? yarn有一個(gè)靈活資源請(qǐng)求模型,當(dāng)請(qǐng)求多個(gè)容器時(shí),可以指定每個(gè)容器需要的計(jì)算機(jī)資源數(shù)量(內(nèi)存和cpu),也可以指定對(duì)容器本地限制要求。容器本地限制可用于申請(qǐng)位于指定節(jié)點(diǎn)或機(jī)架或集群中任何位置容器,確保分布式數(shù)據(jù)處理可以高效使用集群寬帶資源。HDFS默認(rèn)數(shù)據(jù)存儲(chǔ)三個(gè)復(fù)本,如果三個(gè)副本所在節(jié)點(diǎn)或機(jī)架資源申請(qǐng)失敗后,則可以申請(qǐng)集群中任意節(jié)點(diǎn)。

? ? ?yarn調(diào)度

? ? ? ? 理想情況下yarn應(yīng)用發(fā)出資源請(qǐng)求會(huì)立刻給予滿足,但現(xiàn)實(shí)是資源是有限的,通常需要等待才能得到所需資源,因此yarn提供多種調(diào)度器和可配置策略來供選擇。

? ? ?調(diào)度策略

? ? ? ? yarn提供FIFO調(diào)度器、容量調(diào)度器(Capacity Scheduler)和公平調(diào)度器(Fair Scheduler)三種調(diào)度器可用。

? ? ? ? FIFO調(diào)度器將應(yīng)用放置在一個(gè)隊(duì)列中,按照提價(jià)順序運(yùn)行應(yīng)用,首先為隊(duì)列中第一個(gè)應(yīng)用請(qǐng)求分配資源,第一個(gè)應(yīng)用請(qǐng)求被滿足后再依次為隊(duì)列下一個(gè)應(yīng)用服務(wù)。FIFO調(diào)度器簡(jiǎn)單易懂,不需要配置,但不適合共享集群。如果碰到大應(yīng)用(運(yùn)行資源多)占用集群所有資源,其他應(yīng)用必須等待直到輪到自己運(yùn)行。這種情況下容量調(diào)度器或公平調(diào)度器更適合,這兩種調(diào)度器允許長(zhǎng)時(shí)間作業(yè)及時(shí)完成,又允許較小臨時(shí)查詢用戶能得到反饋。下圖描述調(diào)度器差異性。

圖-yarn三種調(diào)度器比對(duì)

????????如上圖所屬,當(dāng)使用FIFO調(diào)度器(i)時(shí),小作業(yè)會(huì)一直被阻塞,直到大作業(yè)完成。使用容量調(diào)度器時(shí)一個(gè)獨(dú)立的專門隊(duì)列保證小作業(yè)一提交就啟動(dòng),由于隊(duì)列容量為固定隊(duì)列中作業(yè)所保留的,這種策略是以整個(gè)集群利用率為代價(jià),相比于FIFO調(diào)度器相比,大作業(yè)執(zhí)行時(shí)間更長(zhǎng)。

????????使用公平調(diào)度器時(shí),不需要預(yù)留一定資源,調(diào)度器會(huì)在所有運(yùn)行的作業(yè)之間動(dòng)態(tài)平衡資源,第一個(gè)作業(yè)啟動(dòng)時(shí),因?yàn)槭俏ㄒ贿\(yùn)行作業(yè)因而可以獲得集群所有資源。當(dāng)?shù)诙€(gè)作業(yè)啟動(dòng),它被分配到集群的一半資源,每個(gè)作業(yè)都能公平共享資源。在這個(gè)過程中第二個(gè)作業(yè)啟動(dòng)能獲得公平共享資源之間會(huì)有時(shí)間滯后,必須等待第一個(gè)作業(yè)使用的容器能用完并釋放出資源。當(dāng)小作業(yè)結(jié)束且不再申請(qǐng)資源后,大作業(yè)將再次使用全部資源,最終實(shí)現(xiàn)即得到較高集群利用率,又保證小作業(yè)及時(shí)完成。

? ? ? ? 在yarn進(jìn)行資源調(diào)度時(shí)有一些細(xì)節(jié)知識(shí)需要注意下,比如搶占和延遲調(diào)度。

? ? ?搶占

? ? ? ? 搶占是在公平調(diào)度器模式下,當(dāng)作業(yè)被提交到一個(gè)空隊(duì)列時(shí),因?yàn)闆]有作業(yè)運(yùn)行需要的資源,作業(yè)不會(huì)立刻啟動(dòng),這時(shí)允許調(diào)度器終止那些占用資源超過其公平共享份額的隊(duì)列容器,這些容器釋放后分配給資源數(shù)量低于應(yīng)得份額隊(duì)列。要啟動(dòng)這項(xiàng)功能需要配置下面策略參數(shù)。將yarn.scheduler.fair.preemption設(shè)置為true,開啟搶占功能。觸發(fā)搶占功能設(shè)置:mininum share preemption timeout和fair share preemption timeout,單位是秒。

????????mininum share preemption timeout設(shè)置指定時(shí)間內(nèi)未獲得被承諾最小共享資源,調(diào)度器就搶占其他容器,可以通過分配文件中頂層元素defaultMinSharePreemptionTimeout為所有隊(duì)列設(shè)置默認(rèn)超時(shí)時(shí)間,也可以通過設(shè)置每個(gè)隊(duì)列minSharePreemptionTimeout為單個(gè)隊(duì)列指定超時(shí)時(shí)間。? ?

? ??????fair share preemption timeout設(shè)置指定時(shí)間內(nèi)獲得資源仍然低于公平共享分享份額一半,那調(diào)度器就搶占其他容器。

? ? ? 延遲調(diào)度

? ? ? ? 延遲調(diào)度是嘗試以本地請(qǐng)求為重,如果一個(gè)應(yīng)用請(qǐng)求某個(gè)節(jié)點(diǎn)等待一段時(shí)間后能夠增加在所請(qǐng)求節(jié)點(diǎn)上分配容器的機(jī)會(huì),增加調(diào)度本地性,提高集群效率。

? ? ? ? 當(dāng)使用延遲調(diào)度時(shí),調(diào)度器不會(huì)簡(jiǎn)單使用它收到第一調(diào)度機(jī)會(huì),而是等待設(shè)定的最大數(shù)目調(diào)度機(jī)會(huì)發(fā)生,才放松本地限制并接受下一個(gè)調(diào)度機(jī)會(huì)。

? ? ? ? 容量調(diào)度器可以通過設(shè)置yarn.scheduler.capacity.node-locality-delay配置延遲調(diào)度,設(shè)置為正書表示,調(diào)度器在放松節(jié)點(diǎn)限制改為同一機(jī)架上其他節(jié)點(diǎn)準(zhǔn)備錯(cuò)過的調(diào)度機(jī)會(huì)數(shù)量。? ?

? ? ? ? 公平調(diào)度器也使用調(diào)度機(jī)會(huì)數(shù)量來決定延遲時(shí)間,將yarn.scheduler.fair.locality.threshold.node設(shè)置為0.5,表示調(diào)度器在接受同一機(jī)架中其他節(jié)點(diǎn)之間,將一直等待到集群中一半節(jié)點(diǎn)已給過調(diào)度機(jī)會(huì)。

? ? ? ? 總結(jié)

? ? ? ? 本文是對(duì)yarn運(yùn)行機(jī)制和調(diào)度過程梳理,包括yarn資源調(diào)度步驟流程、三種調(diào)度策略特點(diǎn)介紹和資源調(diào)度過程進(jìn)行優(yōu)化時(shí)可以使用的搶占、延遲調(diào)度功能梳理,希望通過本文可以幫你掌握yarn運(yùn)行機(jī)制和調(diào)度過程知識(shí)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,530評(píng)論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,407評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,759評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,204評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,415評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,955評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評(píng)論 1 286
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,675評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,967評(píng)論 2 374

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