- 目錄
- 前言:
- 1、YARN概述
- 2、mapreduce&yarn的工作機制
- 總結:
目錄
前言:
在了解Yarn在MR中的作用的時候需要先了解Yarn是什么。
1、YARN概述
Yarn是一個資源調度平臺,負責為運算程序提供服務器運算資源,相當于一個分布式的操作系統平臺,而mapreduce等運算程序則相當于運行于操作系統之上的應用程序
YARN的重要概念
1、 yarn并不清楚用戶提交的程序的運行機制
2、 yarn只提供運算資源的調度(用戶程序向yarn申請資源,yarn就負責分配資源)
3、 yarn中的主管角色叫ResourceManager
4、 yarn中具體提供運算資源的角色叫NodeManager
5、 這樣一來,yarn其實就與運行的用戶程序完全解耦,就意味著yarn上可以運行各種類型的分布式運算程序(mapreduce只是其中的一種),比如mapreduce、storm程序,spark程序,tez ……
6、 所以,spark、storm等運算框架都可以整合在yarn上運行,只要他們各自的框架中有符合yarn規范的資源請求機制即可
7、 Yarn就成為一個通用的資源調度平臺,從此,企業中以前存在的各種運算集群都可以整合在一個物理集群上,提高資源利用率,方便數據共享。
2、mapreduce&yarn的工作機制
客戶端提交程序到yarn的整個過程如下圖所示:
主要分為以下幾個關鍵步驟:
1、客戶端發送Application的提交請求到ResourceManager。
2、客戶端收到返回的存儲位置信息后,將相關的文件存儲到HDFS對應的位置(實際就是mrAPPmaster所在的node上的位置)
3、向yarn申請啟動mrappmaster。
4、yarn將提交的申請信息進行封裝轉化為一個Task放進隊列中等待處理。
5、相應的node領到task,運行mrappmaster,將相關的Job信息下載到本地。
6、mrappmaster向yarn申請運行maptask所需的node,各個node創建各自的容器container來處理maptask。
7、mrappmaster將job的相關信息發送的各個maptask所在的node上。
8、maptask的分區排序。
9、mrappmaster向yarn申請運行reducetask所需node
10、reducetask階段
11、mrappmaster向resourcemanager申請注銷自己。
yarn有內存分離機制會給一個進程提供一塊固定的資源空間(CPU+RAM)來運行,類似于一個容器,此處叫做container,一個節點包含多個container。
總結:
最主要了解yarn在整個MR過程中起到的作用:即先通過Yarn來啟動mrappmaster,再通過mrappmaster來申請對應的Maptask和ReduceTask的資源,(內部處理任務的單元是一個Container容器)任務執行完畢后mrappmaster向Yarn申請注銷自己。