1.作业提交

  1. 提交作业 job 后,job.waitForCompletion(true)调用 monitorAndPrintJob()方法每秒轮询 作业进度,如果发现自上次报告后有改变,便把进度报告给控制台。Job 的 submit()方法 创建一个内部的 JobSubmitter 实例,并调用其 submitJobInternal 方法(步骤 1)。作业 完成后,如果成功,就显示计数器;如果失败,这将导致作业失败的错误记录到控制台。

JobSubmitter 所实现的作业提交过程如下所述:

  1. 向资 ResourceManager 源管理器请求一个新作业的 ID,用于 MapReduce 作业 ID。
  2. 作业客户端检查作业的输出说明,计算输入分片 splits 并将作业资源(包括作业 Jar 包、 配置文件和分片信息)复制到 HDFS
  3. 通过调用资源管理器上的 submitApplication()方法提交作业

2.作业初始化

  1. 资源管理器 ResourceManager 收到调用他的 submitApplication()消息后,便将请求传 递给调度器(scheduler)。调度器分配一个容器(Container),然后资源管理器在节点 管理器(NodeManager)的管理下载容器中启动应用程序的 master 进程(步骤 5a 和 5b)
  2. MapReduce 作业的 application master 是一个 Java 应用程序,它的主类是 MRAppMaster。 它对作业进行初始化:通过创建多个簿记对象以保持对作业进度的跟踪,因为它将接受 来自任务的进度和完成报告(步骤 6)。
  3. 接下来,它接受来自共享文件系统的在客户端计算的输入分片(步骤 7)。对每一个分 片创建一个 map 任务对象以及由 mapreduce. job.reduces 属性确定的具体数量的 reduce 任务对象。

3.任务分配

  1. AppMaster 为该作业中的所有 map 任务和 reduce 任务向资源管理器请求容器。

4.任务执行

  1. 一旦资源管理器的调度器为任务分配了容器,AppMaster 就通过与节点管理器 NodeManager 通讯来启动容器(步骤 9a 和 9b)。
  2. 该任务由主类为 YarnChild 的 Java 应用程序执行。在它允许任务之前,首先将任务需要 的资源本地化,包括作业的配置、JAR 文件和所有来自分布式缓存的文件.
  3. 最后运行 map 任务或 reduce 任务。

5.进度和状态更新

  1. 在 YARN 下运行时,任务每 3 秒钟通过 umbilical 接口向 APPMaster 汇报进度和状态。客户端每一秒钟(通过 mapreduce.client. Progressmonitor.pollinterval 设置)查询一次 AppMaster 以接收进度更新,通常 都会向用户显示。

6.作业完成

  1. 除了向 AppMaster 查询进度外,客户端每 5 秒还通过调用 Job 的 waitForCompletion() 来 检 测 作 业 是 否 完 成 。 查 询 的 间 隔 可 以 通 过 mapreduce.client.completion.pollinterval 属 性 进 行 设 置 。 作 业 完 成 后 , AppMaster 和任务容器清理器工作状态

MapReduce作业提交流程相关推荐

  1. 【Debug跟踪Hadoop3.0.0源码之MapReduce Job提交流程】第三节 Job提交前的初始化

    [Debug跟踪Hadoop3.0.0源码之MapReduce Job提交流程]第三节 Job提交前的初始化 回顾 Job提交前的初始化 后记 跳转 回顾 上一节中我们对 jobSubmitter(提 ...

  2. Flink运行时架构及各部署模式下作业提交流程

    1.运行时架构 1.1 核心组件 1.1.1 JobManager 作业管理器,对于一个提交执行的作业,JobManager 是真正意义上的"管理者"(Master),负责管理调度 ...

  3. YARN作业提交流程剖析

    YARN(MapReduce2) Yet Another Resource Negotiator / YARN Application Resource Negotiator 对于节点数超出4000的 ...

  4. spark StandAlone模式下的作业提交流程

    spark StandAlone也有两种作业提交模式,client 和 cluster模式,以下以cluster为例说明 提交代码 ./spark-submit \ --class org.apach ...

  5. 大数据_Flink_数据处理_运行时架构3_yarn上作业提交流程---Flink工作笔记0018

    然后我们再来看看,yarn上面的flink的job提交流程,可以看到 首先flink client,1.先去上传flink的jar包和配置,到HDFS,然后,2再提交job任务,给resourcema ...

  6. mapreduce作业提交源码解读(创建不同模式下的runner、在工作区间生成切片规划文件和配置文件后提交)

    文章目录 1.判断作业状态是否为DEFINE后,调用submit方法   1.1 再次确认作业状态,使用新api   1.2 创建连接(不同执行模式,创建不同的runner)   1.3 获取提交器对 ...

  7. 大数据_Flink_数据处理_运行时架构2_作业提交流程_抽象架构---Flink工作笔记0017

    1.首先先去提交任务,这个提交任务可以是在网页端后台,也可以是在命令行提交任务. 在网页端后台提交就是flink的网页管理端对吧. 2.第1步任务将会被提交到分发器 3.第2步分发器会把任务转交给jo ...

  8. Spark详解(七):SparkContext源码分析以及整体作业提交流程

    1. SparkContext源码分析 在任何Spark程序中,必须要创建一个SparkContext,在SparkContext中,最主要的就是创建了TaskScheduler和DAGSchedul ...

  9. MapReduce作业提交到YARN上运行的步骤

    hadoop jar 包名 类名 输入参数1 输入参数2 - [hadoop@hadoop000 lib]$ hadoop jar hadoop-train-v2-1.0.jar com.imooc. ...

  10. 【大数据入门笔记系列】第六节 分布式计算框架MapReduce的工作流程

    [大数据入门笔记系列]第六节 分布式计算框架MapReduce的工作流程 前言 MapReduce分布式运算 MapReduceApplication MapTask ReduceTask split ...

最新文章

  1. java软件下载jar_qdox.jar免费版
  2. OCtaveResNet 测试
  3. http中的请求头各部分都是什么意思_小前端探索HTTP
  4. 科普丨关灯玩手机,危害到底有多大?如何科学用眼?
  5. #if/#else/#endif
  6. java axis2 教程_webservice的Axis2入门教程java版
  7. 安卓桌面整理app_升级到 iOS 13,你还会删除 APP 和整理桌面了吗?
  8. IP互动电视的坚强后盾
  9. Beanshell相关
  10. 2021年南京市高考成绩查询,2021年南京各高中高考成绩排名及放榜最新消息
  11. BSH验厂介绍BSH博世社会责任审核内容
  12. Java工程探讨2020-11-07
  13. MySQL性能瓶颈排查
  14. python中label函数_python实现在函数图像上添加文字和标注的方法
  15. ARM:嵌入式系统之WDT中断实验
  16. linux看内存插槽,Linux查看内存大小和插槽
  17. CRM客户关系管理系统让企业在竞争中脱颖而出
  18. 萌新必入!手把手教你玩转Synchronized锁和Lock锁!
  19. delphi xe mysql_delphi xe 之路(27)XE7 Datasnap使用dbExpress连接MySQL-阿里云开发者社区...
  20. PHP知识付费系统源码(H5+小程序+APP源代码)

热门文章

  1. Docker 停止容器
  2. 给重回正路的大二学生:戒急戒躁中前行
  3. Python 史上最全第三方库收集(第二弹)
  4. 银行柜员绩效考核案例
  5. 百度地图语音导航开发
  6. Android 百度导航SDK
  7. php 测试网站打开速度,JS如何测试目标网站的打开响应速度
  8. 物联网流量池_如何搭建物联网卡流量池系统
  9. 如何将div拼接成html代码,给div拼接html 拼接字符串
  10. POI PPT模板字段替换