yarn 工作原理及 yarn application操作命令


YARN:
Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。

YARN的運行流程:

YARN 主要由ResourceManager、NodeManager、ApplicationMaster、container等幾部分組成。YARN總體上是Master/Slave結構,在整個資源管理框架中,ResourceManager為Master,NodeManager為Slave,ResourceManager負責對各個NodeManager上的資源進行統一管理和調度。當用戶提交一個應用程序時,需要提供一個用以跟蹤和管理這個程序的ApplicationMaster,它負責向ResourceManager申請資源,並要求NodeManger啟動可以占用一定資源的任務。由於不同的ApplicationMaster被分布到不同的節點上,因此它們之間不會相互影響。

服務功能
ResouceManager:

1、處理客戶端的請求 
2、啟動和監控ApplicationMaster 
3、監控nodemanager 
4、資源的分配和調度

Nodemanager
NM是每個節點上的資源和任務管理器,它會定時向RM匯報本節點的資源使用情況和各個Container的運行狀態,它還接收並處理來自AM的Container啟動/停止等請求

1、處理單個節點的資源管理 
2、處理來自ResouceManager的命令 
3、處理來自ApplicationMaster的命令

ApplicationMaser
用戶提交的每一個應用程序都包括一個AM,AM主要有以下功能:

1.與RM協調器協商以獲取資源(用Container表示);
2.將得到的任務進一步分配給內部任務;
3.與NM通信以啟動/停止任務;
4.監控任務的狀態,並在任務失敗時重新為任務申請資源以重啟任務。

Container
對多任務運行環境的抽象,包括CPU、內存等多維度資源以及環境變量、啟動命令等任務運行的相關環境

運行流程

1、客戶端向RM中提交程序 
2、RM向NM中分配一個container,並在該container中啟動AM  3、AM向RM注冊,這樣用戶可以直接通過RM査看應用程序的運行狀態(然后它將為各個任務申請資源,並監控它的運行狀態,直到運行結束) 
4、AM采用輪詢的方式通過RPC協議向RM申請和領取資源,資源的協調通過異步完成 
5、AM申請到資源后,便與對應的NM通信,要求它啟動任務 6、NM為任務設置好運行環境(包括環境變量、JAR包、二進制程序等)后,將任務啟動命令寫到一個腳本中,並通過運行該腳本啟動任務 7、各個任務通過某個RPC協議向AM匯報自己的狀態和進度,以讓AM隨時掌握各個任務的運行狀態,從而可以在任務失敗時重新啟動任務 
8、應用程序運行完成后,AM向RM注銷並關閉自己

關閉historyserver

mr-jobhistory-daemon.sh stop historyserver

yarn application操作命令

1、-list 列出所有 application 信息,

示例:
yarn  application -list

2、-appStates 跟 -list 一起使用,用來篩選不同狀態的 application,多個用","分隔;
所有狀態:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED

示例:
yarn  application -list -appStates RUNNING

3、-appTypes 跟 -list 一起使用,用來篩選不同類型的 application,多個用","分隔;
如 MAPREDUCE

示例:
yarn  application -list -appTypes MAPREDUCE

4、-kill 殺死一個 application,需要指定一個 Application ID

示例:
yarn  application -kill application_1526100291229_206393

5、-status 列出 某個application 的狀態

示例:
yarn  application -status application_1526100291229_206393

6、-movetoqueue 移動 application 到其他的 queue,不能單獨使用
7、-queue 與 movetoqueue 命令一起使用,指定移動到哪個 queue

示例:
yarn  application -movetoqueue application_1526100291229_206393 -queue other


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM