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)分布式