您好,登錄后才能下訂單哦!
Yarn 是一個資源調度平臺,負責為運算程序提供服務器運算資源,相當于一個分布式的操作系統(tǒng)平臺,而 MapReduce 等運算程序則相當于運行于操作系統(tǒng)之上的應用程序。
工作機制詳解:
1)MR 程序提交到客戶端所在的節(jié)點。
2)YarnRunner 向 ResourceManager 申請一個 Application。
3)RM 將該應用程序的資源路徑返回給 YarnRunner。
4)該程序將運行所需資源提交到 HDFS 上。
5)程序資源提交完畢后,申請運行 mrAppMaster。
6)RM 將用戶的請求初始化成一個 Task。
7)其中一個 NodeManager 領取到 Task 任務。
8)該 NodeManager 創(chuàng)建容器 Container,并產(chǎn)生 MRAppmaster。
9)Container 從 HDFS 上拷貝資源到本地。
10)MRAppmaster 向 RM 申請運行 MapTask 資源。
11)RM 將運行 MapTask 任務分配給另外兩個 NodeManager,另兩個 NodeManager 分別領取任務并創(chuàng)建容器。
12)MR 向兩個接收到任務的 NodeManager 發(fā)送程序啟動腳本,這兩個 NodeManager 分別啟動 MapTask,MapTask 對數(shù)據(jù)分區(qū)排序。
13)MrAppMaster 等待所有 MapTask 運行完畢后,向 RM 申請容器,運行 ReduceTask。
14)ReduceTask 向 MapTask 獲取相應分區(qū)的數(shù)據(jù)。
15)程序運行完畢后,MR 會向 RM 申請注銷自己。
作業(yè)提交全過程詳解:
1)作業(yè)提交
2)作業(yè)初始化
3)任務分配
4)任務運行
5)進度和狀態(tài)更新
6)作業(yè)完成
目前,Hadoop作業(yè)調度器主要有三種:FIFO、Capacity Scheduler和Fair Scheduler。Hadoop2.7.2默認的資源調度器是Capacity Scheduler。
[yarn-default.xml]
<property>
<description>The class to use as the resource scheduler.</description>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
先進先出調度器
容量調度器
公平調度器
作業(yè)完成時間取決于最慢的任務完成時間,一個作業(yè)由若干個 Map 任務和 Reduce 任務構成,因硬件老化、軟件Bug等,某些任務可能運行非常慢,系統(tǒng)中有 99% 的 Map 任務都完成了,只有少數(shù)幾個 Map 老是進度很慢,完不成,怎么辦?
推測執(zhí)行機制
為拖后腿的任務啟動一個備份任務,同時運行,誰先運行完用誰的結果
執(zhí)行推測任務的前提條件
不能啟用推測執(zhí)行機制情況
原理圖:
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。