Mr 結合yarn的執行流程 執行邏輯

2021-09-23 20:19:10 字數 1560 閱讀 1186

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返回共享...