没有合适的资源?快使用搜索试试~ 我知道了~
(整理)公平调度算法分析.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 201 浏览量
2023-03-11
21:06:35
上传
评论
收藏 232KB DOCX 举报
温馨提示
试读
5页
。
资源推荐
资源详情
资源评论
.................
在 Hadoop-0.21.0 版本中,Fair Scheduler 代码结构有了较大变化(注意,最近的0.23.0 版本
与 0.21.0 基本相同),且核心调度算法也做了重大修改,使之更合理,更完善。本文主要分
析了新版 Hadoop 中公平调度器的新特性。
如果你不了解旧版本 Hadoop 的 Fair Scheduler 算法,可参考这篇文章:Hadoop-0.20.2 公平
调度器算法解析 。
1. Hadoop-0.21.0 版本公平调度器新特性
(1) 将之前(0.21.0 之前版本)的基于缺额的调度算法改为层次调度算法
(2) 支持资源抢占
(3) 添加 delay scheduling 机制,使调度策略更优。
(4) 每个队列的调度策略可以配置,支持两种调度策略,分别为FIFO 和 FAIR,不管采用哪
种调度策略,以上三个功能全部支持。
2. 层次调度算法
2.1 改进动机
之前的 Fair Scheduler 采用了基于缺额调度算法,主要思想是:将作业的优先级转化成权重,
优先级越高权重越大,而权重越大,获得的资源越多,通过权重计算出的资源就是“公平共
享量”,这是理想状态下,每个作业应得到资源量,而在实际情况下,可能获取不到这些资
源,因而可以得到一个“理想和现实之间的差距”,为了是这个差距更能体现实际意义,又将
时间融合进去,即:“理想和现实之差乘以时间”,这就是缺额(缺额是累加的,如果一个作
业为获得资源,其缺额会随着时间不段增大,直到能够排到队列前头)。每次出现空闲资源
时,优先选择缺额大的作业,以便达到公平调度的目的。
这个调度器在 Yahoo和 Cloudera 内部均被采用,但在使用过程中,会出现以下现象:
(1) 用户提交两个作业,其中一个提交时间早一些,因而占下了集群中所有的资源,而第
二个作业以一半集群资源的速度积累缺额,直到一段时间之后,它的缺额才足以使得达到可
以获取资源的资格;
(2) 当用户继续提交大量作业时,由于第二个作业的缺额非常大,则后面的作业完全获取
不到资源。
要消除这种现象,则需要对调度算法进行改进
一种改进方法是每隔一段时间重置缺额,而新版公平调度器则采用了以下算法。
2.2 新调度算法
首先介绍几个概念:
Pool:资源池,或者作业池。 每个 pool 里有一定量的资源(管理员配置),每个用户属于
某个 pool,其作业可使用这个 pool 中的资源,可限定每个 pool 中最大并发作业数和每个用
户最多提交作业数。默认情况下,一个linux 用户对应一个 pool,而管理员也可以配以一个
linux group 对应一个 pool。pool 实际上也可以称为 group 或者队列。
最小共享量:管理员可给每个 pool 配置一个最小共享量,调度器在分配资源时,需要保证
每个 pool 中的作业至少获取该数目的资源。一个常见的应用场景是,对产品pool 设置最小
共享量,而测试 pool 不设置,这样,当可用资源有限时时,优先保证产品 pool 有资源可用。
公平共享量:当集群中存在多个 pool 时,某些 pool 中的资源可能用不了,这时候调度器会
自动将这些 pool 中剩余的资源共享给其他需要的 pool,其他这些 pool 获取的共享资源多少
主要由其 pool weight 决定,pool weight 越大,获取的资源越多。 一个 pool 的最小共享量加
上其获取的共享资源数目,就是公平共享量。
下面正式介绍公平调度器的层次调度算法,大的思想与Capacity Scheduler 类似,首先选择
一个 pool,然后从该 pool 中选择一个 job,最后从该 job 中选择一个 locality 的 task。
.................
资源评论
G11176593
- 粉丝: 6687
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功