Hadoop之MapReduce任务执行流程

Hadoop之MapReduce任务执行流程

在这里插入图片描述

图中名词的解析

1.job

表示一个MapReduce作业,负责监控作业的运行状态,它维护了一个作业的状态机,以实现异步执行各种作业相关操作

2.Task

表示一个MapReduce作业的某个任务,负责监控一个任务的运行状态。它维护了一个任务状态机,以实现各种任务相关的操作

3.MRAppMaster

MRAppMaster是MapReduce的ApplicationMaster实现,它使得Map

Reduce可以直接运行在YARN上,它主要作用在于管理作业的生命周期:

​ 1.1作业的管理:作业的创建,初始化以及启动等

​ 1.2向RM申请资源和再分配资源

​ 1.3Container的启动与释放

​ 1.4监控作业运行状态

​ 1.5作业恢复

4.ResourcesManager

  • 与客户端进行交互,处理来自于客户端的请求,如查询应用的运行情况等。
  • 启动和管理各个应用的ApplicationMaster,并且为ApplicationMaster申请第一个Container用于启动和在它运行失败时将它重新启动。
  • 管理NodeManager,接收来自NodeManager的资源和节点健康情况汇报,并向NodeManager下达管理资源命令,例如kill掉某个container。
  • 资源管理和调度,接收来自ApplicationMaster的资源申请,并且为其进行分配。这个是它的最重要的职能。

5.NodeManager

NodeManager是运行在单个节点上的代理,它管理Hadoop集群中单个计算节点,功能包括与ResourceManager保持通信,管理Container的生命周期、监控每个Container的资源使用(内存、CPU等)情况、追踪节点健康状况、管理日志和不同应用程序用到的附属服务等。

6.YarnChild

MrAppmaster运行程序时向resouce manager 请求的maptask/reduceTask。也是运行程序的容器。其实它就是一个运行程序的进程。

MapReduce的任务执行流程简述

1.run job 运行任务

2.向ResourcesManager发送请求,接收jobid任务编号

3.将作业运行需要的资源复制到文件系统

4.将任务提交给resourcesManager

5.启动container容器

6.初始化AppMaster(使得MapReduce程序可以运行在YARN中,主要作用管理作业的声明周期)

7.AppMaster接受分片信息

8.AppMaster向resourceManager请求分配资源

9.在指定的NodeManager上启动计算容器

10.NodeManager启动YarnChild接受(jar\配置\数据)

11.Yarchild运行Maptask和ReduceTask

12.Yarnchild监控Maptask和ReduceTask并向AppMaster汇报运行状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值