Hadoop:Yarn设计原理
一、Yarn基本架构

二、Yarn工作流程

三、Yarn作业提交全过程

作业提交
第 1 步: Client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业。
第 2 步: Client 向 RM 申请一个作业 id。
第 3 步: RM 给 Client 返回该 job 资源的提交路径和作业 id。
第 4 步: Client 提交 jar 包、切片信息和配置文件到指定的资源提交路径。
第 5 步: Client 提交完资源后,向 RM 申请运行 MrAppMaster。
作业初始化
第 6 步: 当 RM 收到 Client 的请求后,将该 job 添加到容量调度器中
第 7 步: 某一个空闲的 NM 领取到该 Job。
第 8 步: 该 NM 创建 Container, 并产生 MRAppmaster。
第 9 步:下载 Client 提交的资源到本地。
任务分配
第 10 步: MrAppMaster 向 RM 申请运行多个 MapTask 任务资源。
第 11 步: RM 将运行 MapTask 任务分配给另外两个 NodeManager, 另两个 NodeManager分别领取任务并创建容器。
任务运行
第 12 步: MR 向两个接收到任务的 NodeManager 发送程序启动脚本, 这两个NodeManager 分别启动 MapTask, MapTask 对数据分区排序。
第13步: MrAppMaster等待所有MapTask运行完毕后,向RM申请容器, 运行ReduceTask。
第 14 步: ReduceTask 向 MapTask 获取相应分区的数据。
第 15 步: 程序运行完毕后, MR 会向 RM 申请注销自己。
进度和状态更新
YARN 中的任务将其进度和状态(包括 counter)返回给应用管理器, 客户端每秒(通过mapreduce.client.progressmonitor.pollinterval 设置)向应用管理器请求进度更新, 展示给用户。
作业完成
除了向应用管理器请求作业进度外, 客户端每 5 秒都会通过调用 waitForCompletion()来检查作业是否完成。 时间间隔可以通过 mapreduce.client.completion.pollinterval 来设置。 作业完成之后, 应用管理器和 Container 会清理工作状态。 作业的信息会被作业历史服务器存储以备之后用户核查。
MR任务执行

四、Yarn调度器
4.1 FIFO调度器

4.2 容量调度器(Capacity Scheduler)
- 多队列: 每个队列可配置一定的资源量,每个队列采用FIFO调度策略。
- 容量保证:管理员可为每个队列设置资源最低保证和资源使用上限
- 灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列
- 多租户:支持多用户共享集群和多应用程序同时运行。为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定
4.3 公平调度器(Fair Scheduler)
4.3.1 与容量调度器对比
- 多队列:支持多队列多作业
- 容量保证:管理员可为每个队列设置资源最低保证和资源使用上线
- 灵活性: 如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。
- 多租户:支持多用户共享集群和多应用程序同时运行;为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。
- 容量调度器:优先选择资源利用率低的队列
- 公平调度器:优先选择对资源的缺额比例大的
- 容量调度器: FIFO、 DRF
- 公平调度器: FIFO、 DRF、FAIR
4.3.2 公平调度器缺额
- 公平调度器设计目标是:在时间尺度上,所有作业获得公平的资源。某一时刻一个作业应获资源和实际获取资源的差距叫“缺额”
- 调度器会优先为缺额大的作业分配资源
4.3.3 公平调度器策略
《Hadopp技术内幕:深入解析YARN架构设计与实现原理》
Hadoop:Yarn设计原理的更多相关文章
- 一图看懂hadoop Yarn工作原理
Hadoop 资源调度框架Yarn运行流程
- Hadoop Yarn框架原理解析
在说Hadoop Yarn的原理之前,我们先来看看Yarn是怎样出现的.在古老的Hadoop1.0中,MapReduce的JobTracker负责了太多的工作,包括资源调度,管理众多的TaskTrac ...
- Hadoop Yarn内存资源隔离实现原理——基于线程监控的内存隔离方案
注:本文以hadoop-2.5.0-cdh5.3.2为例进行说明. Hadoop Yarn的资源隔离是指为运行着不同任务的“Container”提供可独立使用的计算资源,以避免它们之间相互干扰.目 ...
- 一图看懂hadoop Spark On Yarn工作原理
hadoop Spark On Yarn工作原理
- Hadoop2.0(HDFS2)以及YARN设计的亮点
YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResouceManager负责对各个Node ...
- hadoop yarn
简介: 本文介绍了 Hadoop 自 0.23.0 版本后新的 map-reduce 框架(Yarn) 原理,优势,运作机制和配置方法等:着重介绍新的 yarn 框架相对于原框架的差异及改进:并通过 ...
- 大数据基础总结---MapReduce和YARN技术原理
Map Reduce和YARN技术原理 学习目标 熟悉MapReduce和YARN是什么 掌握MapReduce使用的场景及其原理 掌握MapReduce和YARN功能与架构 熟悉YARN的新特性 M ...
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...
- Storm on Yarn :原理分析+平台搭建
Storm on YARN: Storm on YARN被视为大规模Web应用与传统企业应用之间的桥梁.它将Storm事件处理平台与YARN(Yet Another Resource Negotiat ...
- [转]Hadoop YARN任务提交流程
Yarn是随着hadoop发展而催生的新框架,全称是Yet Another Resource Negotiator,可以翻译为“另一个资源管理器”.yarn取代了以前hadoop中jobtracker ...
随机推荐
- 关于CH182LED配置的说明
CH182的LED配置有两种模式: 传统LED功能 该功能可通过页7寄存器19控制bit 3-5控制 使用时可将页7寄存器19 bit3 置0 通过bit4-5实现不同模式,默认情况下bit3为0,b ...
- 异步编程与Tortoise-ORM框架
title: 异步编程与Tortoise-ORM框架 date: 2025/04/19 00:13:05 updated: 2025/04/19 00:13:05 author: cmdragon e ...
- SSM整合3
目录 数据库 父工程 父工程目录结构 父工程pom.xml dao层 dao层目录结构 pom.xml domain dao 配置文件 mapper配置文件 applicationContext-da ...
- 【ROS】5.1 ARP攻击Turtlebot3汉堡Burger并解析移动报文
原视频 ARP攻击 实验环境推荐:Linux虚拟机×2:Ubuntu 20.04或18.04或kali,被攻击机安装好ROS: 提升能力环境推荐:不同真机下的Linux虚拟机×2:Ubuntu 20. ...
- 【MOOC】华中科技大学计算机组成原理慕课答案-第六章-中央处理器(一)
单选 1 一定不属于冯•诺依曼机体系结构必要组成部分的是()(单选) A. CPU B. RAM C. ROM √D. Cache 计算机中的ROM主要是用来存储一些系统信息,或者启动程序BIOS程序 ...
- SQL 强化练习 (二)
继续 sql 搞起来, 面向过程来弄, 重点是分析的思路, 涉及的的 left join, inner join, group by +_ having, case when ... 等场景, 也是比 ...
- C#开发的Panel滚动分页控件 - 开源研究系列文章
前些时候因为想拥有一个自己的软件快捷打开软件,于是参考Windows 11的开始菜单,进行了编写这个应用软件,里面有一个功能就是对显示的Panel里的应用对象的分页功能,于是就想写一个对Panel的自 ...
- 解决git clone 速度慢问题比较赞的方法
使用国内镜像,目前已知的GitHub国内镜像网站有github.com.cnpmjs.org和git.sdut.me. 在clone 某项目时候可将github.com替换为github.com.cn ...
- 定制Django的Tag和Filter(二)
配置 (1)最常见的放置自定义Tag和Filter的地方是在Django的app下.当一个app被添加到settings.py的INSTALLED_APPS 后,任何在它下面的合法位置将自动的可在te ...
- 经典webshell流量特征
开门见山,不说废话 判断条件 是否符合通信的特征 请求加密的数据和响应包加密的类型一致 是否一直向同一个url路径发送大量符合特征的请求,并且具有同样加密的响应包 一 .蚁剑 特征为带有以下的特殊字段 ...