YARN中MapReduce作业运行过程

hadoop任务中

基于YARN的mapreduce作业执行流程详解

1. 作业提交

① 客户端从资源管理器获取应用程序id(作业id);

② 计算输入分片并将作业资源(作业jar包、配置和分片信息)复制到hdfs;

③ 客户端调用submitApplication()方法提交作业。

2. 作业初始化

资源管理器收到调用submitApplication()消息后,会将请求传递给调度器(scheduler),调度器分配一个容器,然后资源管理器在节点管理器的管理下在容器中启动应用程序的master进程(MRAppMaster)。

MRAppMaster对作业进行初始化:

① 创建多个簿记对象以保持对作业进度的跟踪(它会接受任务进度报告)

② 获取作业的输入分片信息;

③ 对每个分片创建一个map任务对象以及由mapreduce.job.reduces属性确定的多个reduce任务对象。

3. 任务分配

application master会为该作业中所有map任务和reduce任务向资源管理器请求容器,并将map任务输入数据文件的分片所在主机、机架信息、运行内存信息等传给资源管理器,调度器根据集群状态和任务信息分配容器,优先分配数据文件所在节点,次优先分配数据所在机架的节点。

4. 任务执行

资源管理器分配容器后将容器信息返回给application master,application master通过与节点管理器通信来启动分配的容器。容器首先需要将任务需要的资源本地化,包括作业配置、JAR包、和hdfs上的输入文件,本地化完成后执行map和reduce任务。

5. 进度和状态更新

任务定时向application master汇报进度和状态,application master汇聚全局状态。

客户端定时向application master获取作业进度信息。

6. 作业完成

客户端定时向application master查询作业是否完成,也可以通过http回调来通知作业完成。

作业完成后,application master和任务容器会清理其工作状态。

赞(0) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » YARN中MapReduce作业运行过程

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏