yarn的初步理解

jopen 8年前發布 | 9K 次閱讀 YARN 分布式/云計算/大數據

查考site: http://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-site/YARN.html

yarn結構圖如下:

1、yarn

下一代的MapReduce系統框架,也稱為MRv2(MapReduce version 2), 它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度。

YARN的基本思想是將JobTracker的兩個主要功能(資源管理和作業調度/監控)分離,主要方法是創建一個全局的ResourceManager(RM)

和若干個針對應用程序的ApplicationMaster(AM)。這里的應用程序是指傳統的MapReduce作業或作業的DAG。

2、ResourceManager(RM)

RM和與NM(NodeManager每個節點一個)共同組成整個數據計算框架,RM是系統中將資源分配給各個應用的最終決策者。

RM有兩個組件組成:

調度器(Scheduler)

應用管理器(ApplicationsManager,ASM)

調度器根據容量、隊列等限制條件(如每個隊列分配一定的資源,最多執行一定數量的作業等),將系統中的資源分配給各個正在運行的應用程序。

需要注意的是,該調度器是一個“純調度器”,它不再從事任何與具體應用程序相關的工作,比如不負責監控或者跟蹤應用的執行狀態等,也不負責重新啟動

因應用執行失敗或者硬件故障而產生的失敗任務,這些均交由應用程序相關的ApplicationMaster完成。調度器僅根據各個應用程序的資源需求進行資源分配,

而資源分配單位用一個抽象概念“資源容器”(Resource Container,簡稱Container)表示,Container是一個動態資源分配單位,它將內存、CPU、磁盤、網絡等資源封裝在一起,

從而限定每個任務使用的資源量。此外,該調度器是一個可插拔的組件,用戶可根據自己的需要設計新的調度器,YARN提供了多種直接可用的調度器,比如Fair Scheduler和Capacity Scheduler等。

3、NodeManager(NM)

NM是每個節點上的資源和任務管理器,一方面,它會定時地向RM匯報本節點上的資源使用情況和各個Container的運行狀態;另一方面,它接收并處理來自AM的Container啟動/停止等各種請求。

4、ApplicationsManager(ASM)

ASM主要負責接收作業,協商獲取第一個容器用于執行AM和提供重啟失敗AM container的服務。

5、ApplicationMaster(AM)

AM實際上是一個具體的框架庫,它的任務是【與RM協商獲取應用所需資源】和【與NM合作,以完成執行和監控task的任務】。

注:RM只負責監控AM,在AM運行失敗時候啟動它,RM并不負責AM內部任務的容錯,這由AM來完成。

6、Container

Container是YARN中的資源抽象,它封裝了某個節點上的多維度資源,如內存、CPU、磁盤、網絡等,當AM向RM申請資源時,RM為AM返回的資源便是用Container表示。

YARN會為每個任務分配一個Container,且該任務只能使用該Container中描述的資源。

來自: http://www.cnblogs.com/yinchengzhe/p/5141460.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!