YARN作業(yè)運行機制

YARN中包括以下幾個角色:

  1. 客戶端(Client):向整個集群提交MapReduce作業(yè)舌镶。
  2. YARN資源管理器(ResourceManager):負責調度整個集群的計算資源爽室。
  3. YARN節(jié)點管理器(NodeManager):在集群的機器上啟動以及監(jiān)控container。
  4. MapReduce應用管理器(MRAppMaster): 調度某個作業(yè)的所有任務. 應用管理器和任務運行在container中, container由資源管理器調度, 由節(jié)點管理器管理奋姿。
  5. 分布式文件系統(tǒng):通常是HDFS。
yarn的運行機制

1、作業(yè)提交

YARN中的提交作業(yè)的API和經(jīng)典的MapReduce很像(第1步). 作業(yè)提交的過程和經(jīng)典的MapReduce很像, 新的作業(yè)ID(應用ID)由資源管理器分配(第2步). 作業(yè)的客戶端核實作業(yè)的輸出, 計算輸入的split, 將作業(yè)的資源(包括Jar包, 配置文件, split信息)拷貝給HDFS(第3步). 最后, 通過調用資源管理器的submitApplication()來提交作業(yè)(第4步).

2煮仇、作業(yè)初始化

當資源管理器收到submitApplciation()的請求時, 就將該請求發(fā)給調度器(scheduler), 調度器分配第一個container, 然后資源管理器在該container內啟動應用管理器進程, 由節(jié)點管理器監(jiān)控(第5a和5b步).

MapReduce作業(yè)的應用管理器是一個主類為MRAppMaster的Java應用. 其通過創(chuàng)造一些bookkeeping對象來監(jiān)控作業(yè)的進度, 得到任務的進度和完成報告(第6步). 然后其通過分布式文件系統(tǒng)得到由客戶端計算好的輸入split(第7步). 然后為每個輸入split創(chuàng)建一個map任務, 根據(jù)mapreduce.job.reduces創(chuàng)建reduce任務對象.

然后應用管理器決定如何運行構成整個作業(yè)的任務. 如果作業(yè)很小, 應用管理器會選擇在其自己的JVM中運行任務, 這種作業(yè)稱作是被unerized, 或者是以uber task的方式運行. 在任務運行之前, 作業(yè)的setup方法被調用來創(chuàng)建輸出路徑. 與MapRuduce 1中該方法由tasktracker運行的一個任務調用不同, 在YARN中是由應用管理器調用的.

3嫉髓、任務分配

如果不是小作業(yè), 那么應用管理器向資源管理器請求container來運行所有的map和reduce任務(第8步). (注:每個任務對應一個container观腊,且只能在該container上運行)這些請求是通過心跳來傳輸?shù)? 包括每個map任務的數(shù)據(jù)位置, 比如存放輸入split的主機名和機架(rack). 調度器利用這些信息來調度任務, 盡量將任務分配給存儲數(shù)據(jù)的節(jié)點, 或者退而分配給和存放輸入split的節(jié)點相同機架的節(jié)點.

請求也包括了任務的內存需求, 默認情況下map和reduce任務的內存需求都是1024MB. 可以通過mapreduce.map.memory.mb和mapreduce.reduce.memory.mb來配置.

分配內存的方式和MapReduce 1中不一樣, MapReduce 1中每個tasktracker有固定數(shù)量的slot, slot是在集群配置是設置的, 每個任務運行在一個slot中, 每個slot都有最大內存限制, 這也是整個集群固定的. 這種方式很不靈活.

在YARN中, 資源劃分的粒度更細. 應用的內存需求可以介于最小內存和最大內存之間, 并且必須是最小內存的倍數(shù).

4、任務運行

當一個任務由資源管理器的調度器分配給一個container后, 應用管理器通過練習節(jié)點管理器來啟動container(第9a步和9b步). 任務有一個主類為YarnChild的Java應用執(zhí)行. 在運行任務之前首先本地化任務需要的資源, 比如作業(yè)配置, JAR文件, 以及分布式緩存的所有文件(第10步). 最后, 運行map或reduce任務(第11步).

YarnChild運行在一個專用的JVM中, 但是YARN不支持JVM重用.

5算行、進度和狀態(tài)更新

YARN中的任務將其進度和狀態(tài)(包括counter)返回給應用管理器, 后者通過每3秒的臍帶接口有整個作業(yè)的視圖(view). 這和MapRduce 1不太一樣, 后者的進度流從tasktracker到jobtracker梧油。

客戶端每秒(通過mapreduce.client.progressmonitor.pollinterval設置)向應用管理器請求進度更新, 展示給用戶。

在MapReduce 1中, jobtracker的UI有運行的任務列表及其對應的進度. 在YARN中, 資源管理器的UI展示了所有的應用以及各自的應用管理器的UI州邢。

6儡陨、作業(yè)完成

除了向應用管理器請求作業(yè)進度外, 客戶端每5分鐘都會通過調用waitForCompletion()來檢查作業(yè)是否完成. 時間間隔可以通過mapreduce.client.completion.pollinterval來設置。

作業(yè)完成之后, 應用管理器和container會清理工作狀態(tài), OutputCommiter的作業(yè)清理方法也會被調用. 作業(yè)的信息會被作業(yè)歷史服務器存儲以備之后用戶核查量淌。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末骗村,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子呀枢,更是在濱河造成了極大的恐慌胚股,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件裙秋,死亡現(xiàn)場離奇詭異琅拌,居然都是意外死亡缨伊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門进宝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刻坊,“玉大人,你說我怎么就攤上這事党晋√放撸” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵隶校,是天一觀的道長漏益。 經(jīng)常有香客問我,道長深胳,這世上最難降的妖魔是什么绰疤? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮舞终,結果婚禮上轻庆,老公的妹妹穿的比我還像新娘。我一直安慰自己敛劝,他們只是感情好余爆,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夸盟,像睡著了一般蛾方。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上上陕,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天桩砰,我揣著相機與錄音,去河邊找鬼释簿。 笑死亚隅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的庶溶。 我是一名探鬼主播煮纵,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偏螺!你這毒婦竟也來了行疏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤砖茸,失蹤者是張志新(化名)和其女友劉穎隘擎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凉夯,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡货葬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年采幌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片震桶。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡休傍,死狀恐怖,靈堂內的尸體忽然破棺而出蹲姐,到底是詐尸還是另有隱情磨取,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布柴墩,位于F島的核電站忙厌,受9級特大地震影響,放射性物質發(fā)生泄漏江咳。R本人自食惡果不足惜逢净,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歼指。 院中可真熱鬧爹土,春花似錦、人聲如沸踩身。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挟阻。三九已至琼娘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間附鸽,已是汗流浹背轨奄。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拒炎,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓挨务,卻偏偏與公主長得像击你,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谎柄,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內容