网站首页 > 博客文章 正文
?
首先我们的MapReduce程序要提交,整个时候,
比如我们提交了一个wc.jar,那么在这个程序的main方法中,有个
job.waitForCompletion() 这个方法,这个就等待执行完成对吧,然后在这个里面,就有个
yarnrunner对吧,如果是本地执行就是localrunner.
?
然后这个YarnRunner就会去给resourcemanager,去首先申请一个application,就是告诉resourcemanager,我要执行一个应用然后resourcemanager就返回给这个wc.jar中启动的这个
yarnrunner,就说,行你执行把,你先把资源提交到,这个路径,然后返回了一个hdfs的路径过来.
?
然后这个wc.jar和这个MapReduce程序就开始去,提交数据,那么提交什么数据呢?
可以看到有:
job.split job.xml wc.jar
这个job.split就包含了切片信息,数据分的快信息
然后job.xml就包含了,要求应用执行的时候就要按照这个job.xml的配置参数来执行
然后wc.jar就是必不可少的,就是执行这个jar包
?
1.然后当我们的这个wc.jar的这个yarnrunner,提交完运行所需要的资源以后,那么他就开始,去执行4,去申请要创建一个mrAppMaster,
用这个创建的applicationmaster来执行任务,这个申请发送到resourcemanager这里,然后
5.resourcemanager这个时候就会将发过来的请求封装成一个task一个任务,然后把这个任务放到fifo的调度队列中去,
要注意这个队列是个capacity容器,还要知道,这个时候,可能还有其他的mr程序来申请,所以,这个任务可能就会有很多
resourcemanager可能会生成很多的task对吧.
6.当resourcemanager的这个任务队列中,执行到这个任务的时候,那么就会有一个空闲的nodemanager,领取到这个任务
7.当nodemanager领取到这个任务以后,首先他会去创建一个mrappmaster,就是applicationmaster对吧,然后
8.这个applicationmaster会把资源,也就是之前yarnrunner,提交上来的,那些wc.jar job.xml job.split,把这些资源读取到自己本地,然后
他就再去给resourcemanager,去申请
9.去申请运行maptask的容器了,这个时候resourcemanager收到申请有,会再生成一个task,放到fifo的队列里面去
10.然后运行到这个任务的时候,就会有nodemanager,领取这个任务,去创建container容器,这个container包含了,cpu,内存,和wc.jar对吧
当然,这个容器不一定需要用多少个,需要根据,切片信息来生成,并且,这些容器也不一定会在同一个nodemanager上,有可能在
同一个nodemanager上,也有可能在不同的nodemanager上对吧.
?
11.接着等运行maptask的容器container都创建好了以后,然后applicationmaster,就开始去发送一个程序启动脚本,这个时候,
包含maptask的容器,就会,启动一个yarnchild,启动以后就开始处理数据,处理以后,就会把处理完的每个分区的数据都排序完了以后,然后放到一个文件中去,当然每个maptask都会产生一个文件.
12.然后applicationmaster再去给resourcemanager发个情况,去申请容器,来运行reducetask,resourcemanager收到请求以后,然后
会再去创建一个任务,然后把这个任务放到fifo队列中去,然后,等这个任务运行到了以后,就会有nodemanager去领取到这个任务,
然后创建container,去执行reducetask
13.reduce向map阶段写好的文件拉取数据,去处理处理的时候也是上面开启的container会启动yarnchild,去处理
处理以后那么这个过程就算是完了.
14.都执行完了以后这个时候applicationmaster,就会给resourcemanager发送一个请求,告诉resourcemanager说
执行完了,然后resourcemanager,就会再生成一个任务,去销毁,创建的用来执行上面的maptask,reducetask的
container,这样资源回收了以后,再去分配给其他的container执行.
这个就是整个yarn的工作流程.
?
- 上一篇: 每日一问:如何在yarn中开启cgroup资源隔离
- 下一篇: 极简Yarn快速了解(极简rom)
猜你喜欢
- 2024-10-14 国庆期间别偷懒,大数据平台只差YARN了
- 2024-10-14 为什么我们从Yarn切换到pnpm(yarn设置淘宝镜像)
- 2024-10-14 flink的yarn模式部署(flink的三种部署方案)
- 2024-10-14 yarn的安装和使用(yarn安装教程)
- 2024-10-14 yarn 的安装和使用(yarn安装教程)
- 2024-10-14 操作学习-Spark on Yarn(spark on yarn执行流程)
- 2024-10-14 全面解析:Hadoop基础——YARN(hadoop yarn工作原理)
- 2024-10-14 Node简史及好书推荐(nodejs相关书籍)
- 2024-10-14 大数据之-Hadoop3.x_Yarn_常用命令---大数据之hadoop3.x_0147
- 2024-10-14 大数据系列文章之Yarn组件及其执行流程
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)