本文源码:GitHub·点这里 || GitEE·点这里

一、Yarn基本结构

Hadoop三大核心组件:分布式文件系统HDFS、分布式计算框架MapReduce,分布式集群资源调度框架Yarn。Yarn并不是在Hadoop初期就有的,是在Hadoop升级发展才诞生的,典型的Master-Slave架构。

Yarn包括两个主要进程:资源管理器Resource-Manager,节点管理器Node-Manager。

资源管理器

  • 通常部署在独立的服务器,处理客户端请求;
  • 处理集群中的资源分配和调度管理;

节点管理器

  • 管理当前节点上的资源;
  • 执行处理各种具体的命令;
  • 监视节点资源情况,并上报资源管理器;

ApplicationMaster

  • 提供容错能力,切割数据;
  • 给应用程序申请资源并分配任务;

Container

  • Yarn中的一个动态资源分配的概念;
  • 容器包含了一定量的内存、CPU等计算资源;
  • 由NodeManager进程启动和管理;

二、基本执行流程

  • 向Yarn提交MapReduce应用程序程序进行调度;
  • RM组件返回资源提交路径和ApplicationId;
  • RM进程NM进程通信,根据集群资源分配容器;
  • 将MRAppMaster分发到上面分配的容器上面;
  • 运行所需资源提交到HDFS上申请运行MRAppMaster;
  • RM经过上述操作把客户端请求转换为Task任务;
  • 容器中运行的就是Map或者Reduce任务;
  • 任务在运行期间和MRAppMaster通信上报状态;
  • 任务执行结束后进程注销并且释放容器资源;

MapReduce应用开发遵循Yarn规范的MapReduceApplicationMaster,所以可以在Yarn上运行,其它计算框架如果也遵守该规范,这样就实现资源的统一调度管理。

三、资源调度器

调度器的基本作用就是根据节点资源的使用情况和作业需求,将任务调度到各个节点上执行。单理解任务队列的话关键的因素有如下几个:进出方式,优先级,容量等。

Hadoop作业调度器主要有三种:FIFO、CapacityScheduler和FairScheduler,默认的资源调度器是CapacityScheduler。

先进先出调度器

FIFO一种批处理调度器,调度策略先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。

容量调度器

CapacityScheduler支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,计算队列中正在运行的任务书和计算资源的比值,选中比值小相对空闲的队列,然后安装作业优先级和提交时间的排序。为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。

例如上面图例,假设100个slot分为三个队列(ABC),按照如下分配规则:队列A给20%的资源,队列B给50%的资源,队列C给30%的资源;三个队列都按照任务的先后顺序依次执行,上面的job11、job21、job31是最先运行,也是并行运行。

公平调度器

和容量调度器原理类似,支持多队列多用户,每个队列中的资源量可以配置,同一队列中的作业公平共享队列中所有资源。

比如有三个队列(ABC),每个队列中的job按照优先级分配资源,优先级越高分配的资源越多,但是每个job都会分配到资源以确保公平。在资源有限的情况下,每个job理想情况下获得的计算资源与实际获得的计算资源存在一种差距,,这个差距就叫做缺额。在同一个队列中,job的资源缺额越大,越先获得资源优先执行,作业是按照缺额的高低来先后执行的。

四、源代码地址

GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent

推荐阅读:编程体系整理

序号 项目名称 GitHub地址 GitEE地址 推荐指数
01 Java描述设计模式,算法,数据结构 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
02 Java基础、并发、面向对象、Web开发 GitHub·点这里 GitEE·点这里 ☆☆☆☆
03 SpringCloud微服务基础组件案例详解 GitHub·点这里 GitEE·点这里 ☆☆☆
04 SpringCloud微服务架构实战综合案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
05 SpringBoot框架基础应用入门到进阶 GitHub·点这里 GitEE·点这里 ☆☆☆☆
06 SpringBoot框架整合开发常用中间件 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
07 数据管理、分布式、架构设计基础案例 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆
08 大数据系列、存储、组件、计算等框架 GitHub·点这里 GitEE·点这里 ☆☆☆☆☆

Hadoop框架:Yarn基本结构和运行原理相关推荐

  1. Hadoop基础-Hdfs各个组件的运行原理介绍

    Hadoop基础-Hdfs各个组件的运行原理介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode工作原理(默认端口号:50070) 1>.什么是NameN ...

  2. 程序计数器(PC寄存器)以及java虚拟机栈的存储结构与运行原理的基本介绍

    学习内容: 1.运行时数据区的结构 2.JVM线程的说明 3.程序计数器(PC寄存器) 4.java虚拟机栈 内容详情: 1.运行时数据区的结构 其中:上面的本地方法栈,程序计数器,虚拟机栈是每个线程 ...

  3. 新代系统plc梯形图说明书_PLC梯形图结构和运行原理讲解,适合初学者!

    [工控课堂]电气工程师必备网站!海量免费资源下载学习! 下载地址: čľćĺ亍-塼ć§čŻžĺ - www.gkket.com 1.PLC控制系统梯形图的特点 (1)PLC控制系统的输入信号和 ...

  4. CPU基本结构和运行原理

    1 CPU的基本结构 1.1 CPU是一个计算系统的核心 Control Unit,负责控制.如指令计数器,指令跳转. Logic Unit,负责计算.如加减,比较大小等. 1.2 南北桥芯片将CPU ...

  5. spark on yarn 完全分布式_Spark编程笔记(1)-架构基础与运行原理

    引言 根据IBM前首席执行官郭士纳的观点,IT领域每隔十五年就会迎来一 次重大变革 .当前我们正处于第三次信息浪潮(2010年前后),物联网.云计算和大数据技术突飞猛进. 信息爆炸是我们当前所需要解决 ...

  6. Hadoop——(Hadoop框架,Hadoop的优缺点,Hadoop1.x和2.x的版本区别,Hadoop架构,Hadoop目录结构)

    文章目录 大数据的简介 Hadoop框架 Hadoop的优缺点 Hadoop1.x和2.x的版本区别 Hadoop架构 Hadoop目录结构 正常工作的Hadoop集群中Hadoop都分别需要启动哪些 ...

  7. Hadoop 新 MapReduce 框架 Yarn 详解

    Hadoop MapReduceV2(Yarn) 框架简介 原 Hadoop MapReduce 框架的问题 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储 ...

  8. NetCore框架详解 -------四、.NetCore框架对依赖注入原则 的技术实现和运行原理

    前三章主要从理论角度讲述了依赖注入原则及所衍生实现技术和手段产生的原因.发展和当前所处状况.大部分开发人为前三章对自己的技术水平的提高设有立竿见影的直接作用,但的我在里还是要说一下,前三章不但可以使开 ...

  9. php yii框架原理,Yii框架快速入门[Yii简介及运行原理]

    Yii是一个基于组件.用于开发大型 Web 应用的 高性能 PHP 框架.采用严格的 OOP 编写,Yii 使用简单,非常灵活,具有很好的可扩展性.Yii官方下载 包含特性 1. MVC.DAO/Ac ...

最新文章

  1. 关于键盘上方创建返回按钮
  2. 同一个项目相互调接口_超详细——接口测试总结与分享(一)
  3. 五、Kafka 用户日志上报实时统计之应用概述
  4. 重磅!微信、淘宝、抖音、支付宝或将迎来“超级监管”
  5. cadence菜鸟之旅
  6. 如何学习opencv
  7. 如何开发类似QFIL下载工具
  8. Vue+ bootStrap 实现员的增删改查 离职操作 全选单选
  9. 兼容 iOS retina 高清屏
  10. 【环境保护网】-环保设备_环保设备网_环保产品网_中国环境保护网
  11. 实测对比:2层和4层板的干扰和辐射差异
  12. stm32 iic 从机模式 时钟低电平问题
  13. OTN / SONET / SDH
  14. 全面接入:ChatGPT杀进10个商业应用,让AI替你打工
  15. lombok 不生效
  16. 快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现
  17. 车联网基础设施参考技术指南
  18. 计算机辅助有什么用cad,CAD是什么 有哪些用途
  19. 1【计算机专业必备基础知识】《计算机体系结构基础》(胡伟武)速读笔记(上篇)“这位同学,请描述一下PPT完成翻页时电脑软硬件是如何协作的?”
  20. 电化学传感器(2)---设计恒电位电路

热门文章

  1. 数据结构之树、森林、二叉树的转化
  2. 数据结构之查找算法:折半查找
  3. (计算机组成原理)第一章计算机系统概述-第二节:计算机硬件组成(存储器、运算器和控制器概述及计算机工作过程详解)
  4. XSS挑战之旅平台通关练习(1-20)
  5. 在Ubuntu 16.04 安装python3.6 环境并设置为默认
  6. Python @property装饰器的用法,判断函数参数整形、字符串、取值范围
  7. matlab实现线性规划
  8. Windows驱动—VS2010+WDK配置驱动开发环境
  9. 线性表:顺序队列算法实现
  10. 转载:警惕!!骗人的“培训机构” “北大青鸟”事件