yarn fair scheduler 之公平排序算法
来源:互联网 发布:淘宝宝贝上架软件 编辑:程序博客网 时间:2024/04/29 04:18
这篇文章主要分析公平调度器的公平排序算法,基于hadoop-2.3.0-cdh5.0.0
首先,了解这几个概念:
- 资源需求量:当前队列或者应用希望获得的资源的总量。
- 最小份额:队列的最小共享量在配置中指定。应用的最小共享量为0。
- 资源使用量:当前队列或者应用已经分配到的总资源。
- 权值:队列的权重值在配置中指定。在开启sizebasedweight特性的情况下,应用的权重=(log2(资源需求量))*优先级*调整因子。优先级当前都是1,当应用运行超过5分钟,调整因子为3。
排序只需了解对于两个比较体的比较算法,然后对返回值升序排序。这里的比较体是队列或应用。
不说什么比较体,暂且称为队列吧,当然这个算法同样应用与队列内部应用的排序。
- 首先,计算两个队列各自的资源使用量 < min(资源需求量,最小份额),即是否饥饿。
- 然后,饥饿的队列优先。
- 对于两者都饥饿的情况下,需要计算资源分配比,结果小者优先。资源分配比=资源使用量/min(资源需求量,最小份额, 1)
- 当都不饥饿时,需要计算资源使用权值比,结果小者优先。资源使用权重比=资源使用量/权值
- 如果资源分配比或权值比相等,先提交的优先。
公平排序算法决定的是谁可以先获得资源,在资源需求量一致的情况下,最小份额越大且资源使用量较小有较高的优先级来获得资源,保证不长时间处于饿死状态。注意权值是在两者都不饥饿的前提下起作用,即两个队列的资源使用量 >= min(资源需求量,最小份额).
下面看看相关代码吧
队列内部的应用排序算法默认采用fair排序,即与队列的排序相同。
可以看出,前面可配置的几个参数中(最小份额和权值,其它的在运行过程中都是可变的),对排序结果影响的顺序是先最小份额,再权值。这些参数是配合着使用,还是只保留一个变量原则,还需要看应用的场景。
比如,你需要的是保证相对的公平,追求地位平等,当然也可以把他们的配置都做成一样的。但是这样却没有考虑到运行时的一些因素,如集群繁忙情况、每个队列的资源使用量以及需求量等都是可变因素。所以,最好是最小份额和权值配合着使用,可以遵循“谁愿意共享得越多,就可以获得更多的资源”的原则,即最小份额与权值成反比。
另外一种情况,你需要有一个等级分明、两级分化的环境,那就有人说了,怎么不直接用另一个调度器 Capacity Scheduler ?当然如果你不考虑它配置的苛刻“所有队列的容量之和应小于100”,它是可以满足的。而公平调度没有这个限制,无论多么不合理的配置都能够处理。好吧,说正题,这时最好统一最小份额配置,通过调节权值来体现两极分化(涉及到另外一个公平份额算法)。
参考资料:
- YARN ResourceManager调度器的分析
- Hadoop MapReduce Next Generation - Fair Scheduler
0 0
- yarn fair scheduler 之公平排序算法
- yarn fair scheduler 之公平份额算法和抢占模型
- yarn fair scheduler 之概述
- YARN Fair Scheduler 配置
- Linux 2.6 完全公平调度算法CFS(Completely Fair Scheduler)分析
- Yarn公平调度器之DRF算法
- Yarn公平调度器之DRF算法
- Improvements in the Hadoop YARN Fair Scheduler
- Spark1.5.2 on yarn fair scheduler 配置
- Yarn参数优化(Fair Scheduler版本)
- Clouder Manager: Yarn Fair scheduler config
- hadoop公平调度其Fair Scheduler运行错误
- hadoop2.0 公平调度器(fair-scheduler)配置
- hadoop2.0 公平调度器(fair-scheduler)配置
- Hadoop YARN配置参数—Fair Scheduler相关参数
- Yarn多用户资源管理–Fair Scheduler介绍与配置
- Hadoop Yarn多用户资源管理–Fair Scheduler介绍与配置
- Hadoop Yarn多用户资源管理–Fair Scheduler介绍与配置
- Android中的TabHost
- 用Python读取配置文件
- jvisualvm
- 原创文章22222222222
- 黑马程序员_java_GUI总结
- yarn fair scheduler 之公平排序算法
- wireshark 抓包问题
- Html5 图片拖放上传
- testtttt
- 时间序列模型
- 如何使用DWZ?
- 尊重原创22222222222
- git 解决冲突的办法
- 333333333333