大數據:YARN介紹

1、YARN是什麼:

Yarn是一個資源調度平臺,負責爲運算程序提供服務器運算資源,相當於一個分佈式的操作系統平臺,而MapReduce等運算程序相當於運行於操作系統之上的應用程序。

2、YARN的組成

YARN分爲ResourceManager,NodeManager,ApplicationMaster

1.ResourceManager概述

是全局的,負責對於系統中的所有資源有最高的支配權。ResourceManager作爲資源的協調者有兩個主要的組件:Scheduler和ApplicationsManager(AsM)。

Scheduler負責分配最少但滿足application運行所需的資源量給Application。Scheduler只是基於資源的使用情況進行調度,並不負責監視/跟蹤application的狀態,當然也不會處理失敗的task。

ApplicationsManager負責處理client提交的job以及協商第一個container(動態資源分配,包含一定的內存和CPU)以供applicationMaster運行,並且在applicationMaster失敗的時候會重新啓動applicationMaster。

2.NodeManager概述

NM主要負責啓動RM分配給AM的container以及代表AM的container,並且會監視container的運行情況。

在啓動container的時候,NM會設置一些必要的環境變量以及將container運行所需的jar包、文件等從hdfs下載到本地,也就是所謂的資源本地化;當所有準備工作做好後,纔會啓動代表該container的腳本將程序啓動起來。

啓動起來後,NM會週期性的監視該container運行佔用的資源情況,若是超過了該container所聲明的資源量,則會kill掉該container所代表的進程。

3.ApplicationMaster概述

由於NodeManager 執行和監控任務需要資源,所以通過ApplicationMaster與ResourceManager溝通,獲取資源。換句話說,ApplicationMaster起着中間人的作用。

轉換爲更專業的術語:AM負責向ResourceManager索要NodeManager執行任務所需要的資源容器,更具體來講是ApplicationMaster負責從Scheduler申請資源,以及跟蹤這些資源的使用情況以及任務進度的監控。

所以我們看到JobTracker的功能被分散到各個進程中包括ResourceManager和NodeManager:

比如監控功能,分給了NodeManager,和Application Master。

ResourceManager裏面又分爲了兩個組件:調度器及應用程序管理器。

也就是說Yarn重構後,JobTracker的功能,被分散到了各個進程中。同時由於這些進程可以被單獨部署所以這樣就大大減輕了單點故障,及壓力。

最後要提醒在yarn上寫應用程序並不同於我們熟知的MapReduce應用程序,必須牢記yarn只是一個資源管理的框架,並不是一個計算框架,計算框架可以運行在yarn上。我們所能做的就是向RM申請container,然後配合NM一起來啓動container。

3、YARN分配資源的過程

1.客戶端的mapreduce程序通過hadoop shell提交到hadoop的集羣中. 
2.程序會通過RPC通信將打成jar包的程序的有關信息傳遞給Hadoop集羣中RM(ResourceManager),可稱爲領取JOBID的過程 
3.RM根據提交上來的信息給任務分配一個唯一的ID,同時會將run.jar的在HDFS上的存儲路徑等信息發送給客戶端. 
4.客戶端得到那個存儲路徑等信息之後,會相應的拼接出最終的存放路徑目錄,然後將run.jar分多份存儲在HDFS目錄中,默認情況下備份數量爲10份.可配置. 
5.客戶端提交一些配置信息,例如:最終存儲路徑,JOB ID等. 
6.RM會將這些配置信息放入一個隊列當中,RM會根據相應的調度的算法來分配資源. 
7.NM(NodeManager)和RM是通過心跳機制保持着通信的,NM會定期的向RM去領取任務. 
8.RM會在任意的一臺或多臺的NM中,啓動任務監控的進程Application Master.用來監控其他NM中YARN CHild的執行的情況 
9.NM在領取到任務之後,得到信息,會去HDFS的下載run.jar.然後在本地的機器上啓動YARN Child進程來執行map或者reduce函數.map函數的處理之後的中間結果數據會放在本地文件系統中的. 
10.在結束程序之後,將結果數據寫會HDFS中.整個流程大概就是這樣子的.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章