1 向ResourceManager提交任务
2 主节点返回jobID 和目录
3 初始化
(1)创建临时目录
(2) 上传jar包
(3) 初始化配置信息
(4) 计算任务切片
4 开始运行job
5 ResourceManager 调用Scheduler组件创建默认容器 创建MRappm组件
AppMaster负责控制所有的任务
Scheduler 负责调度资源
nodemanager会根据自己资源生成容器(内存不少于2g,处理资源不少于1核)
一个特定的nodemanager会有mrappmaster组件,用来监控mr程序的运行,处理突发情况
6 MRappmaster 联系客户端下载需要的运行环境
7 向ResourceManager申请容器执行mr任务
8 ResourceManager交给Scheduler组件 执行
9 Scheduler根据需求创建分配任务
10 被指定的节点领取自己的任务
11 节点领取任务后 初始化容器
12 创建yarnchild对象 调用maptask方法
13 MRappMaster监控各节点运行
14 各节点汇报任务进度
15 task发生错误,mrappmaster重新申请容器 在执行一次
16 map程序执行完之后指定节点领取reduce任务
17 创建容器初始化yc对象
18 运行
19 汇报任务进度
20 释放maptask,reducetask对象
21 释放yarnchild对象
22 回收mr程序容器
23 释放mrappmaster对象
24 回收mrappmaster容器
25 删除临时工作目录