Hadoop3:Yarn工作机制

一、流程图

在这里插入图片描述
注意:步骤0中,如果是本地运行,则创建的是LocalRunner

二、流程说明

1、首先,我们把自己编写好的MR程序,上传到集群中客户端所在的节点。
2、使用shell客户端命令,执行jar程序,执行到job.waitForCompletion(true);时,会创建一个YarnRunner对象。
3、YarnRunner会向ResourceManager(RM)申请一个Application
4、RM将该应用程序的资源路径返回给YarnRunner
5、于是,程序将运行所需的三样(Job.split、Job.xml、xxx.jar)资源,提交到HDFS上对应路径下。
而这三样资源,在Driver运行到job.submit();时,被创建。
在这里插入图片描述
6、程序资源提交完毕后,向RM申请运行mrAppMaster
7、RM将用户的请求初始化成一个Task。并将该Task放入任务队列中,等待处理。
8、空闲的NodeManager(NM)会来领取Task任务。并创建容器Container,并生成一个MRAppmaster
然后,将job提交的3个资源下载到本地。在根据Job.split切片信息,申请MapTask容器。
比如,此处是两个切片,则申请2个MapTask容器来运行。
9、于是,RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器
注意:这两个容器,可能在同一个NodeManager上,图中只是一种可能的情况)
10、MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTaskMapTask对数据分区排序。
11、MrAppMaster等待所有MapTask运行完毕后,再次向RM申请容器,运行ReduceTaskReduceTaskMapTask获取相应分区的数据。
12、ReduceTask全部执行完毕后,MrAppMaster反馈给RMRM进行资源释放。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值