YARN是资源管理调度的机制,之前一直以来和MapReduce机制合在一起,之后才分开。正是因为YARN机制单独独立出来,才使得Hadoop框架更加具有普适性。MapReduce可以处理海量离线数据,同样如果处理实时数据,换成Spark,Storm即可,不用重新部署集群,因为资源管理调度YARN是共用的。

当提交一个job,YARN的资源调度如下图所示:

YARN有两个比较重要的组成,Resource Manager和Node Manager,执行hadoop jar cn.darren.hadoop.mr.wordcount.WCRunner这条指令之后,会产生一个RunJar的进程,向RM申请资源,RM会返回job相关资源提交的路径和本Job产生的ID。进而RunJar提交资源到staging-dir路径下面,这在HDFS中,提交完向RM汇报提交结果。RM会将本job加入任务队列,其中RM和NM之间采用“心跳机制”,NM如果觉得自己有空闲,就可以去RM的任务队列领取任务。Node Manager接收到分配任务后,会分配运行的资源容器,有点类似于虚拟机,包括文件资源、CPU资源、内存资源等,业务是在里面跑的。但是YARN并不能启动MapReduce内部的逻辑,所以这时候会启动MRAppMaster,这是用来操作MapReduce的,然后它就会向RM进行注册,比如在哪个节点运行,什么标识等等,同样也会请求一些信息,比如分配的资源都在哪些节点上。然后MRAppMaster就会启动map任务进程,启动起来的进程叫做yarnChild,map执行完之后,会启动Reduce任务进程。MRAppMaster当job执行完后,会向RM注销自己。(map task和yarn task都叫做yarnChild)

总结一下:

在YARN框架中,起监控作用的是Resource Manager,用来监控Node Manager,它们都是节点,也就是进程。

在MapReduce框架中,起监控作用的是MRAppMaster,用来监控yarnChild,它们都是动态产生的进程。

YARN提交job的源码流程如图所示:

最后,将YARN机制的整个运行过程用一张图作为总结,可以看清其总的流程:

在yarn中有如下几个概念:

  • ResourceManager
  • NodeManager
  • Secheduler
  • ApplicationManager
  • MRAppMaster
  • Container

ResourceManager和NodeManager对应实体的物理节点,分别映射到yarn的主节点和计算节点。

1、ResourceManager

ResourceManager节点的功能由Secheduler和ApplicationManager协调完成。

其中ApplicationManager职责如下

  1. 负责接收客户端提交的job
  2. 判断启动该job的MRAppMaster所需的资源
  3. 监控MRAppMaster的状态,在其失败的时候重启MRAppMaster

Secheduler负责仅仅提供一个调度算法调度ApplicationManager提交的任务,他不提供失败重启和任何监控功能。调度算法可以自定义。yarn针对不同的场景提供了三种Secheduler实现:FIFO Scheduler ,Capacity scheduler,Fair Scheduler(请参照调度器详解)。

2、NodeManager

NodeManager对应集群中的计算节点,但是他的功能仅仅只是抽象本节点的资源(如cpu,内存,磁盘,网络)并且定时向ResourceManager的Secheduler汇报。

Container是一组资源的集合,一个container一般用来执行一个task。

MRAppMaster是job的生命周期的管理者,负责整个job执行过程的监控。

前面提到ApplicationManager会判断启动MRAppMaster所需的资源,之后提交给Secheduler,Secheduler将这些资源封装成一个Container,然后根据调度算法在某一个NodeManager上启动MRAppMaster(当然它会消耗掉该NodeManager的资源)。

MRAppMaster启动之后会计算job所需要的资源,并且向Secheduler申请这些资源,NodeManager分配完成这些任务的container之后,会由MRAppMaster来监控这些container的状态,如果失败就回收资源重新申请,如果成功就释放资源,当任务执行完成之后汇报Secheduler,Secheduler回收资源并且向ResourceManager返回执行结果,整个任务处理完毕。

YARN机制的更多相关文章

  1. Hadoop yarn工作流程详解

    yarn是什么?1.它是一个资源调度及提供作业运行的系统环境平台 资源:cpu.mem等 作业:map task.reduce Task yarn产生背景?它是从hadoop2.x版本才引入1.had ...

  2. Hadoop2.0之YARN组件

    官方文档:https://hadoop.apache.org/docs/stable/,目前官方已经是3.x,但yarn机制没有太大变化 一.简介 在Hadoop1.0中,没有yarn,所有的任务调度 ...

  3. 面试杂谈之我的实习求职之路(7个offer)

    现在是5月11号,刚从北京到家,总算也可以歇歇了,最近一段时间真是忙于奔命的感觉,也确实体会到了找工作的艰辛,总而言之,求职之路,如人饮水,冷暖自知. 我想把这段时间找工作的体验和经历分享出来告诉大家 ...

  4. Flink HA

    standalone 模式的高可用 部署 flink 使用zookeeper协调多个运行的jobmanager,所以要启用flink HA 你需要把高可用模式设置成zookeeper,配置zookee ...

  5. 春招实习汇总(7个offer)

    转载出处 刚从北京到家,总算也可以歇歇了,最近一段时间真是忙于奔命的感觉,也确实体会到了找工作的艰辛,总而言之,求职之路,如人饮水,冷暖自知. 我想把这段时间找工作的体验和经历分享出来告诉大家,让大避 ...

  6. hadoop2.5.0 HA高可用配置

    hadoop2.5.0 HA配置 1.修改hadoop中的配置文件 进入/usr/local/src/hadoop-2.5.0-cdh5.3.6/etc/hadoop目录,修改hadoop-env.s ...

  7. hadoop MapReduce Yarn运行机制

    原 Hadoop MapReduce 框架的问题 原hadoop的MapReduce框架图 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 首先用户程序 (JobClient) ...

  8. 3 weekend110的job提交的逻辑及YARN框架的技术机制 + MR程序的几种提交运行模式

    途径1: 途径2: 途径3: 成功! 由此,可以好好比较下,途径1和途径2 和途径3 的区别. 现在,来玩玩weekend110的joba提交的逻辑之源码跟踪 原来如此,weekend110的job提 ...

  9. Hadoop Yarn 框架原理及运作机制及与MapReduce比较

    Hadoop 和 MRv1 简单介绍 Hadoop 集群可从单一节点(其中所有 Hadoop 实体都在同一个节点上运行)扩展到数千个节点(其中的功能分散在各个节点之间,以增加并行处理活动).图 1 演 ...

随机推荐

  1. mac软件下载

    mac软件下载 http://www.pc6.com/mac/ https://www.macx.cn/

  2. 对PHP中类、继承、抽象的理解(个人总结)

    1,PHP中的类可以被继承:A extends B. 2,类被声明为abstract时:a.该类就仅仅包含模版,我们就不能创建该类的实例对象,必须通过继承来使用new创建对象. b.继承一个抽象类的时 ...

  3. 使div变成半透明的css样式

    .layer { opacity:0.9; filter:alpha(opacity=90); zoom:1; }

  4. Vue实例初始化的选项配置对象详解

    Vue实例初始化的选项配置对象详解 1. Vue实例的的data对象 介绍 Vue的实例的数据对象data 我们已经用了很多了,数据绑定离不开data里面的数据.也是Vue的核心属性. 它是Vue绑定 ...

  5. js操作当前窗口

      CreateTime--2017年7月21日09:58:34Author:Marydon js操作当前窗口 1.打开一个新的窗口(新的标签页) 实现方式:window.open(url) 实例一: ...

  6. IBATIS+ORACLE(一)

      迁移时间:2017年6月1日15:55:17 Author:Marydon (四)IBATIS + ORACLE 第一部分:基础篇 1.4.1.1 分页SQL <!-- 开头 --> ...

  7. Oem7F7 通用完美激活v7.0绿色版 永久激活Windows7/2008

    http://www.21andy.com/blog/20100906/1942.html

  8. [机器学习实战] 决策树ID3算法

    1. 决策树特点: 1)优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据. 2)缺点:可能会产生过度匹配问题. 3)适用数据类型:数值型和标称型. 2. 一般流程: ...

  9. css盒子模型及属性介绍(margin,padding)

    每个HTML元素都可以看作装了东西的盒子 盒子具有宽度(width)和高度(height) 盒子里面的内容到盒子的边框之间的距离即填充(margin) 盒子本身有边框(border) 而盒子边框外和其 ...

  10. centos7(vmware install) 安装EMQ注意事项 ---控制台远程访问

    若想远端访问控制台,需打开对于端口 TCP 服务端口占用 EMQ 2.0 消息服务器默认占用的 TCP 端口包括: 1883 MQTT 协议端口 8883 MQTT/SSL 端口 8083 MQTT/ ...