Yarn是一個資源調度平臺,負責爲運算程序提供服務器運算資源,至關於一個分佈式的操做系統平臺,而MapReduce等運算程序則至關於運行於操做系統之上的應用程序
YARN主要由ResourceManager、NodeManager、ApplicationMaster(AM)和Container等組件
(1)Mr程序提交到客戶端所在的節點。 (2)Yarnrunner向Resourcemanager申請一個Application。 (3)rm將該應用程序的資源路徑返回給yarnrunner。 (4)該程序將運行所需資源提交到HDFS上。 (5)程序資源提交完畢後,申請運行mrAppMaster。 (6)RM將用戶的請求初始化成一個task。 (7)其中一個NodeManager領取到task任務。 (8)該NodeManager建立容器Container,併產生MRAppmaster。 (9)Container從HDFS上拷貝資源到本地。 (10)MRAppmaster向RM 申請運行maptask資源。 (11)RM將運行maptask任務分配給另外兩個NodeManager,另兩個NodeManager分別領取任務並建立容器。 (12)MR向兩個接收到任務的NodeManager發送程序啓動腳本,這兩個NodeManager分別啓動maptask,maptask對數據分區排序。 (13)MrAppMaster等待全部maptask運行完畢後,向RM申請容器,運行reduce task。 (14)reduce task向maptask獲取相應分區的數據。 (15)程序運行完畢後,MR會向RM申請註銷本身。
目前,Hadoop做業調度器主要有三種:FIFO、Capacity Scheduler和Fair Scheduler。Hadoop2.7.2默認的資源調度器是Capacity Scheduler。
1.先進先出調度器(FIFO)服務器
2.容量調度器(Capacity Scheduler)架構
3.公平調度器(Fair Scheduler)分佈式