Yarn工作机制流程图
Yarn工作机制详细介绍
1.客户端提交作业,申请jobID(提交给ResourceManager中的Application Master(用于处理客户端的请求))
2.ResourceManager返回一个作业ID,并将HDFS路径返回给客户端
3.客户端将运行作业所需要的资源(Jar包、配置信息、分片信息等)上传到返回的HDFS路径
4.客户端在次向ResourceManager发送请求,执行作业
5.将请求转发到调度器(ResourceScheduler)
6.调度器将任务放到调度队列,当执行相应请求时,会通知ApplicationManager分配容错,调用NodeManager开辟的Container,创建作业对应的ApplicationMaster
7.ApplicationManager在一个NodeManager上开辟资源(Container),然后在Container里面启动一个ApplicationMaster
8.ApplicationMaster获取HDFS上提交的文件,根据切片信息,创建MapTask和ReduceTask
9.ApplicationMaster向调度器(ResourceManager中的ResourceScheduler)申请要运行MapTask和ReduceTask所需要的资源
10.调度器返回执行信息给ApplicationMaster,即告诉ApplicationMaster哪个NodeManager上有所需要的资源
11.ResourceManager 将运行 MapTask 任 务 分 配 给 空 闲 的 多 个
NodeManager,NodeManager 分别领取任务并创建容器(Container)
12.MapTask和ReduceTask进程向两个接收到任务的 NodeManager 发送程序启动脚本,
每个接收到任务的 NodeManager 启动 MapTask,MapTask 对数据进行处理,并分区排序。
13.ApplicationMaster等待所有 MapTask 运行完毕后,向ResourceManager
申请容器(Container),运行 ReduceTask
14.程序运行完成后,ApplicationMaster向ResourceManager发送请求释放资源
15.进度和状态更新