资源调度框架YARN解析

9 篇文章 0 订阅
1 篇文章 0 订阅

Yarn作为Hadoop的资源调度框架,承担着扩展Hadoop的重要责任,我们配置Spark时就使用了Spark on Yarn的配置方法,这里简单介绍一些YARN的工作原理,有助于理解整个系统处理作业的过程。
在配置好的Hadoop环境中,我们输入jps查看进程,可以看到,master节点上的ResourceManager和slave节点上的NodeManager就是属于Yarn的进程。
几个需要了解的概念
1. ResourceManager
ResourceManager是master上的进程,负责整个分布式系统的资源管理和调度。他会处理来自client端的请求(包括提交作业/杀死作业);启动/监控Application Master;监控NodeManager的情况,比如可能挂掉的NodeManager。
2. NodeManager
相对应的,NodeManager时处在slave节点上的进程,他只负责当前slave节点的资源管理和调度,以及task的运行。他会定期向ResourceManager回报资源/Container的情况(heartbeat);接受来自ResourceManager对于Container的启停命令。
3. Application Master
每一个提交到集群的作业都会有一个与之对应的Application Master来负责应用程序的管理。他负责进行数据切分;为当前应用程序向ResourceManager去申请资源(也就是Container),并分配给具体的任务;与NodeManager通信,用来启停具体的任务,任务运行在Container中;而任务的监控和容错也是由Application Master来负责的。
4. Container
那么container又是什么呢?它包含了Application Master向ResourceManager申请的计算资源,比如说CPU/内存的大小,以及任务运行所需的环境变量和队任务运行情况的描述。
在这里插入图片描述
(1)Client向ResourceManager提交作业(可以是Spark/Mapreduce作业)
(2)ResourceManager会为这个作业分配一个container
(3)ResourceManager与NodeManager通信,要求NodeManger在刚刚分配好的container上启动应用程序的Application Master
(4)Application Master先去向ResourceManager注册,而后ResourceManager会为各个任务申请资源,并监控运行情况
(5)Application Master采用轮询(polling)方式向ResourceManager申请并领取资源(通过RPC协议通信)
(6) Application Manager申请到了资源以后,就和NodeManager通信,要求NodeManager启动任务
最后,NodeManger启动作业对应的任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值