1. 程式人生 > >YARN資源管理和排程簡介

YARN資源管理和排程簡介

1、執行在YARN上的MapReduce應用程式


2、執行在YARN上的Storm應用程式


3、YARN應用程式基本構成

①客戶端 :

主要作用是提供一系列訪問介面供使用者與YARN互動,包括提交Application、查詢Application執行狀態,修改Application屬性(比如優先順序)等。
②ApplicationMaster:
 向ResourceManager申請資源(以Container形式表示);
 與NodeManager通訊以啟動各個Container(Task);
 監控各個任務執行狀態,並在失敗時為其重新申請資源。

4、以MapReduce應用程式為例

MapReduce客戶端:
 將MapReduce作業提交到YARN上;
 查詢MapReduce作業執行狀態;
 管理MapReduce作業,比如殺死MapReduce作業,修改其優先順序等。

 ApplicationMaster(MRAppMaster):
 根據描述,將作業分解成Map Task和Reduce Task;
 向ResourceManager為Map/Reduce Task申請資源;
 與NodeManager通訊以啟動Task;
 監控各個任務執行狀態,並在失敗時為其重新申請資源。

5、MapReduce On YARN和MapReduce 程式區別

MapReduce On YARN(由專業人員開發):
 為MapReduce作業執行在YARN上提供跟一個通用的執行時環境;
 需要與YARN的各個服務互動,完成較為複雜的功能;
 由客戶端和ApplicationMaster兩部分組成。
MapReduce程式(由普通使用者開發):
 使用者使用程式設計API(包括新舊兩種)編寫的應用程式;
 由Mapper、Reducer、Combiner等元件構成;
 程式提交到YARN上後,將由已經寫好的ApplicationMaster服務對其進行分解和排程。

6、YARN應用程式開發流程-以MapReduce應用程式為例