1、為什麼要使用yarn?
為了提公升集群的利用率、資源統一管理, 使用yarn為上層應用提供統一的資源管理和排程的平台。
2、yarn的優勢?
資源的統一管理和排程:
集群中所有節點的資源(記憶體、cpu、磁碟、網路等)抽象為container。計算框架需要資源進行運算任務時需要向yarn申請container, yarn按照特定的策略對資源進行排程進行container的分配。
資源隔離:
yarn使用了輕量級資源隔離機制cgroups進行資源隔離以避免相互干擾,一旦container使用的資源量超過事先定義的上限值,就將其殺死。
3、yarn是如何工作的?
介紹yarn排程過程之前,解釋幾個專用名詞:
node manager:一台機器上的管理者,類似於部門經理。管理著本機上若干小弟containers的生命週期、監視資源和跟蹤節點健康並定時上報給rm;接收並處理來自am的container啟動/停止等各種請求。
container:一台機器上具體提供運算資源,將裝置上的記憶體、cpu、磁碟、網路等資源封裝在一起的抽象概念——「資源容器」,container是乙個動態資源分配單位,為了限定每個任務使用的資源量。
以下通俗地解釋一下向yarn提交乙個應用程式時的執行過程(
以map reduce程式為例):
1.使用者向yarn提交程式,resource manager接收到客戶端程式的執行請求,接受並建立乙個任務佇列,把程式放入
task
佇列。
3.
,在執行程式的時候
採用輪詢的方式通過rpc協議
向resource manager申請資源
4.
根據job中的資訊
向rm申請執行maptask容器,rm將請求再打包為
maptask放置排程佇列。
5.
根據resource manager
排程策略
(在某乙個時機),
nm獲取到分配的
maptask後
,根據我們
jar包中的**處理這個任務,
各節點maptask執行完畢後
,通知am
申請執行reducetask
(重複maptask的操作)
【注:每乙個mr任務都是乙個job,可以在job日誌中檢視程式執行日誌或者訪問
8088埠
】
6
、在程式執行期間,
7
關閉自己
,進行資源**,結束自己罪惡的一生。
mr 執行在yarn集群流程分析
rm返回給其資源提交的路徑以及job的id號,staging jobid構成乙個job的唯一資源提交路徑,將job.split job.xml jar包提交到此路徑上面去,job資源提交完畢,rm將其分裝為乙個task,rm可能會處理多個task,所以需要資源排程,其主要有三種方式 fair 公平每...
MR執行流程
在這裡插入描述 資料進入maptask使用inputformat讀取資料 預設讀取格式是textinputformat 使用getsplits對資料目錄進行邏輯切分得到splits,有多少個splits 切片 就有多少個maptask 使用recordreader物件讀取 使用設定好的分隔符 切片裡...
Yarn工作執行流程
job的提交 客戶端向resourcemanager提交job請求,申請資源。resourcemanager向客戶端返回乙個job id以及共享資源路徑hdfs tmp 客戶端將共享資源放在共享資源路徑下 job.jar,job.xml,job.xml 客戶端向resourcemanager返回共享...