Hadoop框架:Yarn基本结构和运行原理
本文源码: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基本结构和运行原理的更多相关文章
- Hadoop基础-Hdfs各个组件的运行原理介绍
Hadoop基础-Hdfs各个组件的运行原理介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode工作原理(默认端口号:50070) 1>.什么是NameN ...
- 理解Web应用程序的代码结构和运行原理(3)
1.理解Web应用程序的运行原理和机制 Web应用程序是基于浏览器/服务器模式(也称B/S架构)的应用程序,它开发完成后,需要部署到Web服务器上才能正常运行,与用户交互的客户端是网页浏览器. 浏览器 ...
- Jmeter组成结构及运行原理
Jmeter结构主要组成要素包括:测试计划,线程组,采样器以及监听器.对于各部件的作用域关系如下图: Jmeter是纯Java程序,使用JVM,运行采用多线程完成,往往单台负载机由于机器配置有限,支持 ...
- 爬虫框架Scrapy 之(四) --- scrapy运行原理(管道)
解析后返回可迭代对象 这个对象返回以后就会被爬虫重新接收,然后进行迭代 通过scrapy crawl budejie -o xx.josn/xx.xml/xx.csv 将迭代数据输出到json.xml ...
- 更快、更强——解析Hadoop新一代MapReduce框架Yarn(CSDN)
摘要:本文介绍了Hadoop 自0.23.0版本后新的MapReduce框架(Yarn)原理.优势.运作机制和配置方法等:着重介绍新的Yarn框架相对于原框架的差异及改进. 编者按:对于业界的大数据存 ...
- hadoop MapReduce Yarn运行机制
原 Hadoop MapReduce 框架的问题 原hadoop的MapReduce框架图 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 首先用户程序 (JobClient) ...
- Hadoop 新 MapReduce 框架 Yarn 详解
Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...
- Flink 集群运行原理兼部署及Yarn运行模式深入剖析
1 Flink的前世今生(生态很重要) 原文:https://blog.csdn.net/shenshouniu/article/details/84439459 很多人可能都是在 2015 年才听到 ...
- Hadoop 新 MapReduce 框架 Yarn 详解【转】
[转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/] 简介: 本文介绍了 Hadoop 自 0.23.0 版本 ...
随机推荐
- 关于JPA一对一,一对多(多对一),多对多的详解
一.@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系. 实体 People :用户. 实体 Address:家庭住址. People 和 Address 是一对一的关系. 这 ...
- oracle 11g 配置口令复杂度
oracle 11g 配置口令复杂度 使用ORACLE自带的utlpwdmg.sql脚本来实现 找到本地的utlpwdmg.sql脚本 find / -name utlpwdmg.sql 查看 /ho ...
- 死磕以太坊源码分析之p2p节点发现
死磕以太坊源码分析之p2p节点发现 在阅读节点发现源码之前必须要理解kadmilia算法,可以参考:KAD算法详解. 节点发现概述 节点发现,使本地节点得知其他节点的信息,进而加入到p2p网络中. 以 ...
- MindManager思维导图应用到办公中需要注意什么
MindManager思维导图是一个易于使用的项目管理软件,能很好地提高项目组的工作效率和小组成员之间的协作性.接下来,小编就为大家介绍三个能利用好该思维导图软件办公的技巧. 一.审阅会议--合作办公 ...
- ABBYY FineReader 14新建任务窗口给我们哪些帮助?
当您启动ABBYY FineReader时, 新任务 将打开一个窗口,在其中您可以轻松打开.扫描.创建或对比文档. 如果您没有看到此 内置任务 窗口(比如,如果您关闭了该窗口,或者您通过在 Windo ...
- CorelDRAW中的合并和群组功能
在设计过程中,对象就是我们进行操作的主体,这个操作主体可以是单个对象,也可以是多个对象,在有多个对象要进行处理时,就需要用到类似CorelDRAW里的合并和群组这两个功能了. 一.合并与拆分 合并功能 ...
- Folx专业版智能速控功能详解
限速功能指的是,用户可以通过限制最大上传.下载速度来控制任务下载的带宽使用,减少因下载导致其他应用程序出现网络延迟的情况.Folx不仅为用户提供简单的任务限速功能,而且还提供更加智能的速控功能,供用户 ...
- 详解FL Studio压缩器——Fruity Limiter(上)
压缩,是电音制作中重要一步,将声音信号压缩后可过滤噪音并使音质变好.众所周知,音乐编曲软件FL Studio的特色就是电音制作,所以必不可少要用到压缩器,今天我们就用FL Studio20来讲解一下. ...
- 什么是NTFS文件格式
说到磁盘格式,想必大家对于NTFS格式并不陌生.我们使用的u盘等硬盘设备很多都应用了此格式.NTFS文件格式究竟是什么?它都有哪些特点?今天,小编将利用这篇文章为大家进行介绍. 一.什么是NTFS文件 ...
- U盘数据丢失怎么办,还能恢复吗
有时候在用U盘的时候会出现数据丢失或者U盘无法打开的问题,检查过之后,发现U盘格式变成了RAW,这是怎么回事?遇到这种情况该怎么解决呢? 首先来看看造成u盘格式变为RAW的主要原因: 1.非正常退出u ...