Yarn的架構和原理

2021-09-29 21:05:05 字數 2309 閱讀 1561

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...