yarn的簡介
yarn是hadoop2引入的通用的資源管理和任務排程的平台,可以在yarn上執行mapreduce、tez、spark等多種計算框架,只要計算框架實現了yarn所定義的介面,都可以執行在這套通用的hadoop資源管理和任務排程平台上。
產生背景
hadoop1.0是由hdfs和mapreduce v1組成的,yarn出現之前是mapreduce v1來負責資源管理和任務排程,mapreduce v1由jobtracker和tasktracker兩部分組成。
mapreducev1有下列缺點
(1) 擴充套件性差
在mapreduce v1中,jobtracker同時負責資源管理和任務排程,而jobtracker只有乙個節點,所以jobtracker成為了制約系統效能的乙個瓶頸,制約了hadoop平台的擴充套件性。
(2) 可靠性低
mapreduce v1中jobtracker存在單點故障問題,所以可靠性低。
(3) 資源利用率低
mapreduce v1採用了基於槽位的資源分配模型,槽位是一種粗粒度的資源劃分單位。
一是通常情況下為乙個job分配的槽位不會被全部利用。
二是乙個mapreduce任務的map階段和reduce階段會劃分了固定的槽位,並且不可以共用,很多時候一種型別的槽位資源很緊張而另外一種型別的槽位很空閒,導致資源利用率低。
(4) 不支援多種計算框架
mapreduce v1這種資源管理和任務排程方式只適合mapreduce這種計算框架,而mapreduce這種離線計算框架很多時候不能滿足應用需求。
yarn的優點
(1) 支援多種計算框架
yarn是通用的資源管理和任務排程平台,只要實現了yarn的介面的計算框架都可以執行在yarn上
(2) 資源利用率高
多種計算框架可以共用一套集群資源,讓資源充分利用起來,提高了利用率。
(3) 運維成本低
避免乙個框架乙個集群的模式,yarn降低了集群的運維成本。
(4) 資料可共享
共享集群模式可以讓多種框架共享資料和硬體資源,減少資料移動帶來的成本
hadoop1.0和2.0的區別
組成部分
hadoop1.0由hdfs和mapreduce組成,hadoop2.0由hdfs和yarn組成。
hdfs可擴充套件性
hadoop1.0中的hdfs只有乙個namenode,制約著集群檔案個數的增長,hadoop2.0增加了hdfs聯盟的架構,可以將namenode所管理的namespace水平劃分,增加了hdfs的可擴充套件性。
可支援的計算框架
hadoop1.0中只支援mapreduce一種計算框架,hadoop2.0因為引入的yarn這個通用的資源管理與任務排程平台,可以支援很多計算框架了。
資源排程和任務排程
hadoop1.0中資源管理和任務排程依賴於mapreduce中的jobtracker,jobtracker工作很繁重,很多時候會制約集群的效能。
yarn的架構和工作原理
resourcemanager
排程器根據容量、佇列等限制條件,將系統中的資源分配給正在執行的應用程式,在保證容量、公平性和服務等級的前提下,優化集群資源利用率,讓所有的資源都被充分利用
主要功能
a.與rm排程器協商以獲得資源,資源以container表示。
b.將得到的任務進一步分配給內部的任務。
c.與nm通訊以啟動/停止任務。
d.監控所有的內部任務狀態,並在任務執行失敗的時候重新為任務申請資源以重啟任務。
nodemanager
nodemanager是每個節點上的資源和任務管理器,一方面,它會定期地向rm匯報本節點上的資源使用情況和各個container的執行狀態;另一方面,他接收並處理來自am的container啟動和停止請求。
container
container是yarn中的資源抽象,封裝了各種資源。乙個應用程式會分配乙個container,這個應用程式只能使用這個container中描述的資源。
不同於mapreducev1中槽位slot的資源封裝,container是乙個動態資源的劃分單位,更能充分利用資源。
yarn的任務提交流程
具體步驟如下:
(4) am採用輪詢的方式向rm申請和領取資源。
(5) rm為am分配資源,以container形式返回。
(6) am申請到資源後,便與之對應的nm通訊,要求nm啟動任務。
(7) nodemanager為任務設定好執行環境,將任務啟動命令寫到乙個指令碼中,並通過執行這個指令碼啟動任務
(8) 各個任務向am匯報自己的狀態和進度,以便當任務失敗時可以重啟任務。
Yarn的架構及原理基礎
1.1 yarn 基本架構 1.2 yarn基本組成結構 1 排程器 排程器根據容量 佇列等限制條件 如每個佇列分配一定的資源,最多執行一定數量的作業等 將系統中的資源分配給各個正在執行的應用程式。2 應用程式管理器 使用者提交的每個應用程式均包含1個am,主要功能包括 與rm排程器協商以獲取資源 ...
YARN架構及原理理解
hadoop yarn是乙個資源排程框架。yarn的基本思想是將資源管理和作業排程 監控的功能分解為單獨的守護程序。resourcemanager和nodemanager構成了資料計算框架。resourcemanager擁有系統中所有應用程式之間仲裁資源的最終許可權,也就是說,應用程式所需要的資源是...
yarn的架構設計
1.client向yarn提交應用程式 2.rm為應用程式分配乙個container,並於nm通訊,告訴它在container中啟動aplicationmaster 3.aplicationmaster向rm註冊,然後傳送為各個任務申請資源的請求,並監控task的執行狀態直到結束 4.aplicat...