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應用程式為例