描述:YARN是Hadoop2.0加入一个资源调度框架,它一样是主从节点架构:ResouceManager(资源管理)和NodeManager。架构
优势:框架
一、资源调度和任务监控分离,解决JobTracker的瓶颈(压力、单点故障)oop
二、通用的资源调度平台,兼容更多运算框架(storm/spark/mapreduce)spa
工做机制:orm
(图摘自官网,官网的图看起来很是复杂,我我的看着是很费劲)接口
Yarn集群的工做机制: 资源
了解Yarn工做机制前先要知道ResourceManager(如下简称RM)是一个资源任务调度器,负责任务资源的分配工做。
spark
一、任务执行前:
ast
1.一、向Yarn集群中提交job做业首先交给RM集群
1.二、RM返回job_id和job相关的资源路径
1.三、得到资源路径后往HDFS上传job
1.四、通知RM,job上传完毕
1.五、RM收到job提交完毕后会将job任务初始化
1.六、将job任务加入到任务列表(task list)
1.七、NodeManager(如下简称NN)会周期性向RM保持心跳通讯,而后检查是否有须要本身领取的任务
1.八、NN一旦检查到须要本身领取的任务时,就领取任务
1.九、领取到任务以后会根据job资源信息分配必定大小的资源容器
1.十、下载job资源到容器
二、执行任务:
Yarn提供了AppMaster接口,AppMaster主要对任务进行监控和调度,RM只管理AppMaster,一旦AppMaster挂了,就会在其余NN节点上从新启动,这样一来RM的压力就下降了(对比Hadoop1.0的JobTracker),运算框架只要实现该接口便可在Yarn集群上面运行,这也是Yarn集群的第二个好处,兼容更多的运算框架Spark/Storm/MapReduce等都实现了该接口,MapReduce实现的接口为MRAppMaster
2.一、启动MRAppMaster,(RM会根据状况在某个NN节点启动)
2.二、MRAppMaster向RM注册
2.三、MRAppMaster根据RM提供的信息启动各个NN节点的Map Task
2.四、启动各个NN节点的Reduce Task
2.五、当任务执行完毕后向RM发起注销操做,销毁本身
以上就是整个Yarn集群的工做机制