MR作业提交流程分析

Hadoop 2.x引入了一种新的执行机制。这种新机制(MR 2)建立在一个名为YARN的系统上。而用于执行的框架通过 “mapreduce.framework.name” 属性进行设置。

mapreduce.framework.name取值:

local: 表示本地的作业运行器
classical: 表示经典的MR框架(也称MR 1,它使用一个 jobtracker 和多个 tasktracker)
yarn: 表示新的框架

角色介绍

  1. 资源管理器: 即 Resource Manager(RM),负责管理所有应用程序计算资源的分配。
  2. 应用管理器: 即 Application Master(AM),每一个应用程序的AM负责相应的调度和协调。
  3. 容器: 即 Containers, YARN为将来的资源隔离而提出的框架,每一个任务对应一个Container,且只能在该Container中运行。
  4. 节点监视器: 即 Node Manager(NM),管理每个节点上的资源和任务,主要有两个作用:定期向AM汇报该节点的资源使用情况和各个Container的运行状态;接收并处理AM的任务启动、停止等请求。
  1. MR运行机制

1.1 YARN上的MR角色实体

Client: 提交MapReduce作业
ResourceManger: 协调集群上的计算资源分配
NodeManager: 启动和监视集群中机器上的计算容器(Container)
ApplicationMaster: 负责协调运行MR作业的任务。它和MR任务在NM的Container中运行,这些容器由ResourceManager分配并由NodeManager进行管理
HDFS: 保存作业的数据、配置信息等

1.2 作业的运行过程

image.png

1)提交作业

  • Client提交Job:Client编写好Job后,调用Job实例的Submit() 或者 * waitForCompletion() 方法提交作业;然后从RM(而不是Jobtracker)获取新的作业ID,在YARN命名法中它是一个Application ID(步骤2)。

  • Job提交到RM:Client检查作业的输出说明,计算输入分片,并将作业资源(包括作业JAR、配置和分片信息)复制到HDFS来分发jar包(步骤3);

  • 调用RM的 submitApplication() 方法提交作业(步骤4)。

2)作业初始化

  • 给作业分配ApplicationMaster: RM收到调用它的 submitApplication() 消息后,便将请求传递给 Scheduler (调度器);Scheduler分配一个 Container,然后 RM在该 NM的管理下在 Container中启动 ApplicationMaster(步骤5a & 5b)。

  • ApplicationMaster初始化作业: MR作业的ApplicationMaster 是一个Java应用程序,它的主类是 MRAppMaster。它对作业进行初始化:通过创建多个薄记对象以保持对作业进度的跟踪,因为它将接受来自任务的进度和完成报告(步骤6);ApplicationMaster 从HDFS中获取 在Client 计算的输入分片(map、reduce任务数)(步骤7)
    【对每一个分片创建一个 map 任务对象以及由 mapreduce.job.reduces 属性确定的多个 reduce 任务对象】。
    ApplicationMaster决定如何运行构成 MapReduce 作业的各个任务。如果作业很小,就选择在与它同一个JVM上运行。

3)任务分配

ApplicationMaster 为该作业中的所有 map 任务和 reduce 任务向 RM 请求 Container (步骤8);【随着心跳信息的请求包括每个map任务的数据本地化信息,特别是输入分片所在的主机和相应机架信息。理想情况下,它将任务分配到数据本地化的节点,但如果不可能这么做,就会相对于本地化的分配优先使用机架本地化的分配】

请求也为任务指定了内存需求。在默认情况下, map任务和reduce任务都分配到 1024MB 的内存,但这可以通过 mapreduce.map.memory.mb 和 mapreduce.reduce.memory.mb来设置。

4)任务执行

一旦 RM 的 Scheduler 为任务分配了 Container, ApplicationMaster就通过与 NM通信来启动 Container(步骤9a & 9b);
该任务由主类为 YardChild 的Java应用程序执行。在它运行任务之前,首先将任务需要的资源本地化(包括作业的配置、JAR文件和所有来自分布式缓存的文件)(步骤10);
最后,运行 map 任务或 reduce 任务(步骤11)。

5)进度和状态的更新

在YARN下运行,任务每 3s通过 umbilical 接口向 ApplicationMaster 汇报进度和状态(包括计数器),作为作业的汇聚试图(aggregate view)。

6)作业完成

除了向 ApplicationMaster 查询进度外,Client 每 5s还通过调用 Job 的 waitForCompletion() 来检查作业是否完成【查询的间隔可以通过 mapreduce.client.completion.pollinterval 属性进行设置】。
作业完成后, ApplicationMaster 和任务容器清理其工作状态, OutputCommitter 的作业清理方法会被调用。作业历史服务器保存作业的信息供用户需要时查询。

1.3 图说MR

image.png

Summary

1 MR任务执行流程:提交作业 ——> 初始化作业 ——> 任务分配 ——> 任务执行 ——> 进度和状态更新 ——> 作业完成

2 MR任务运行:(a) 推测执行, (b) 任务JVM重用

Reference Link

  1. MR任务运行的两种情况: https://www.cnblogs.com/DianaCody/p/5425660.html
  2. MapReduce程序的工作过程: https://www.cnblogs.com/cxzdy/p/5104013.html
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353