1:客户端提交job到resourceManger
2:resourceManger创建job任务 返回工作路径给客户端
3:客户端接收到工作路径后会在HDFS上创建工作目录,初始化job
创建工作目录:
1读取默认的配置 自定义配置(conf.xml)
2计算要处理的数据(计算任务切片)
3上传jar包
4:客户端向resourceManger请求创建任务的容器(1core,1.5G)
5:resourceManger将任务交给调度器(schedule)分配初始化容器任务
6:NodeManger领取任务 ,创建初始化容器(container)
7 :客户端发送执行程序的shell脚本到Appsmaster,
8:Appsmaster启动shell脚本.创建一个MRAppMaster,
9:MRAppMaster下载属于自己job的内容
10:MRAppMaster向resourceManger申请5个容器来运行job(3个maptask,2个reducetask)
11:调度器(schedule)领取自己的任务,创建容器, 在nodemanager(容器中)中创建YarnChild
12:MRAppMaster同时启动maptask任务
13:maptask向MRAppMaster汇报自己的任务运行状况和进度
14: 获取任务,创建reducetask的容器
15:启动reducetask
16:reducetask向MRAppMaster汇报自己的任务运行状况和进度
17: MRAppMaster将job的工作进度汇报给resourceManger
MR程序在yarn上的运行基本流程
最新推荐文章于 2021-11-14 17:49:14 发布