李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
03.Yarn调度器
Leefs
2021-09-09 PM
1905℃
0条
# 03.Yarn调度器 ### 一、概述 目前,Hadoop 作业调度器主要有三种: + FIFO(先进先出) + 容量调度器(Capacity Scheduler) + 公平调度器(Fair Scheduler) Apache Hadoop2.7.2版本之后默认的资源调度器是Capacity Scheduler。 ### 二、Yarn调度器详解 #### 2.1 FIFO FIFO 调度器(First In First Out):单队列,根据提交作业的先后顺序,先来先服务。 ![03.Yarn调度器和调度算法01.jpg](https://lilinchao.com/usr/uploads/2021/09/895296697.jpg) **说明** hadoop1.x使用的默认调度器就是FIFO。FIFO采用队列方式将一个一个job任务按照时间先后顺序进行服务。比如排在最前面的job需要若干maptask和若干reducetask,当发现有空闲的服务器节点就分配给这个job,直到job执行完毕。 **优缺点** **优点:**简单易懂; **缺点:**不支持多队列,生产环境很少使用; #### 2.2 容量调度器(Capacity Scheduler) Capacity Scheduler 是 Yahoo 开发的多用户调度器。 ![03.Yarn调度器和调度算法02.jpg](https://lilinchao.com/usr/uploads/2021/09/4076002684.jpg) **优点** 1. 多队列:每个队列可配置一定的资源量,每个队列采用FIFO调度策略。 2. 容量保证:管理员可为每个队列设置资源最低保证和资源使用上限。 3. 灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用 程序提交,则其他队列借调的资源会归还给该队列。 4. 多租户:支持多用户共享集群和多应用程序同时运行。为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。 #### 2.3 公平调度器(Fair Scheduler) Fair Schedulere 是 Facebook 开发的多用户调度器。 公平调度器同队列所有任务共享资源,在时间尺度上获得公平的资源。 ![03.Yarn调度器和调度算法03.jpg](https://lilinchao.com/usr/uploads/2021/09/1079095224.jpg) ##### 与容量调度器比较 **相同点:** 1. 多队列:支持多队列多作业 2. 容量保证:管理员可为每个队列设置资源最低保证和资源使用上线 3. 灵活性:如果一个对列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给该队列。 4. 多租户:支持多用户共享集群和多应用程序同时运行;为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。 **不同点:** 1. 核心调度策略不同 + 容量调度器:优先选择**资源利用率低**的队列 + 公平调度器:优先选择对资源的**缺额**比例大的 2. 每个队列可以单独设置资源分配方式 + 容量调度器:FIFO、DRF + 公平调度器:FIFO、FAIR、DRF ##### 缺额 ![03.Yarn调度器和调度算法04.jpg](https://lilinchao.com/usr/uploads/2021/09/3728642927.jpg) + 公平调度器设计目标是:在时间尺度上,所有作业获得公平的资源。某一 时刻一个作业应获资源和实际获取资源的差距叫“缺额”。 + 调度器会优先为缺额大的作业分配资源 ### 三、队列资源分配方式 #### 3.1 FIFO策略 公平调度器每个队列资源分配策略如果选择FIFO的话,此时公平调度器相当于上面讲过的容量调度器。 #### 3.2 Fair策略 Fair 策略(默认)是一种基于最大最小公平算法实现的资源多路复用方式,默认情况下,每个队列内部采用该方式分配资源。这意味着,如果一个队列中有两个应用程序同时运行,则每个应用程序可得到1/2的资源;如果三个应用程序同时运行,则 每个应用程序可得到1/3的资源。 **具体资源分配流程和容量调度器一致:** (1)选择队列:优先选择资源占用率最低的队列进行分配 (2)选择作业:所有任务公平分配资源 (3)选择容器:①任务和数据在同一节点;②任务和数据在同一机架;③.任务和数据不在同一节点也不在同一机架。 以上三步,每一步都是按照公平策略分配资源。 #### 3.3 DRF策略 DRF(Dominant Resource Fairness),我们之前说的资源,都是单一标准,例如只考虑内存(也是Yarn默 认的情况)。但是很多时候我们资源有很多种,例如内存,CPU,网络带宽等,这样我们很难衡量两个应用应该分配的资源比例。 **在YARN中,可以使用DRF来决定如何调度:** 假设集群一共有100 CPU和10T 内存,而应用A需要(2 CPU, 300GB),应用B需要(6 CPU,100GB)。则两个应用分别需要A(2%CPU, 3%内存)和B(6%CPU, 1%内存)的资源,这就意味着A是内存主导的, B是 CPU主导的,针对这种情况,我们可以选择DRF策略对不同应用进行不同资源(CPU和内存)的一个不同比例的限制。 *附:* *文章参考《尚硅谷大数据技术之Hadoop》*
标签:
Hadoop
,
Yarn
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1421.html
上一篇
02.Yarn的工作机制和作业提交过程
下一篇
04.Yarn调度算法
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
MyBatisX
Elasticsearch
数学
NIO
Eclipse
随笔
前端
栈
Nacos
JavaWeb
并发编程
Quartz
容器深入研究
Spark Streaming
SpringCloud
JavaWEB项目搭建
CentOS
GET和POST
Map
并发线程
ClickHouse
nginx
Ubuntu
JavaScript
DataX
Scala
VUE
Jenkins
SpringCloudAlibaba
设计模式
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭