`
wujun8
  • 浏览: 11924 次
  • 性别: Icon_minigender_1
  • 来自: 河南
文章分类
社区版块
存档分类
最新评论

yarn fair scheduler 之公平排序算法

阅读更多
这篇文章主要分析公平调度器的公平排序算法,基于hadoop-2.3.0-cdh5.0.0

首先,了解这几个概念:
  • 资源需求量:当前队列或者应用希望获得的资源的总量。
  • 最小份额:队列的最小共享量在配置中指定。应用的最小共享量为0。
  • 资源使用量:当前队列或者应用已经分配到的总资源。
  • 权值:队列的权重值在配置中指定。在开启sizebasedweight特性的情况下,应用的权重=(log2(资源需求量))*优先级*调整因子。优先级当前都是1,当应用运行超过5分钟,调整因子为3。

排序只需了解对于两个比较体的比较算法,然后对返回值升序排序。这里的比较体是队列或应用。
不说什么比较体,暂且称为队列吧,当然这个算法同样应用与队列内部应用的排序。

  • 首先,计算两个队列各自的资源使用量 < min(资源需求量,最小份额),即是否饥饿。
  • 然后,饥饿的队列优先。
  • 对于两者都饥饿的情况下,需要计算资源分配比,结果小者优先。资源分配比=资源使用量/min(资源需求量,最小份额, 1)
  • 当都不饥饿时,需要计算资源使用权值比,结果小者优先。资源使用权重比=资源使用量/权值
  • 如果资源分配比或权值比相等,先提交的优先。
公平排序算法决定的是谁可以先获得资源,在资源需求量一致的情况下,最小份额越大且资源使用量较小有较高的优先级来获得资源,保证不长时间处于饿死状态。注意权值是在两者都不饥饿的前提下起作用,即两个队列的资源使用量 >= min(资源需求量,最小份额).

下面看看相关代码吧
队列内部的应用排序算法默认采用fair排序,即与队列的排序相同。
<script src="https://code.csdn.net/snippets/398416.js" type="text/javascript"></script>

可以看出,前面可配置的几个参数中(最小份额和权值,其它的在运行过程中都是可变的),对排序结果影响的顺序是先最小份额,再权值。这些参数是配合着使用,还是只保留一个变量原则,还需要看应用的场景。
比如,你需要的是保证相对的公平,追求地位平等,当然也可以把他们的配置都做成一样的。但是这样却没有考虑到运行时的一些因素,如集群繁忙情况、每个队列的资源使用量以及需求量等都是可变因素。所以,最好是最小份额和权值配合着使用,可以遵循“谁愿意共享得越多,就可以获得更多的资源”的原则,即最小份额与权值成反比。
另外一种情况,你需要有一个等级分明、两级分化的环境,那就有人说了,怎么不直接用另一个调度器Capacity Scheduler ?当然如果你不考虑它配置的苛刻“所有队列的容量之和应小于100”,它是可以满足的。而公平调度没有这个限制,无论多么不合理的配置都能够处理。好吧,说正题,这时最好统一最小份额配置,通过调节权值来体现两极分化(涉及到另外一个公平份额算法)。

参考资料:
分享到:
评论

相关推荐

    大数据平台构建:YARN的任务调度.pptx

    在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair Scheduler。 Yarn任务调度机制 二、FIFO Scheduler FIFO Scheduler是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适用于...

    CDH集群YARN动态资源池的规划与管理.docx

    2.1.2 yarn.scheduler.fair.allow-undeclared-pools 2.2 资源池配置 2.3 放置规则设置 2.4 计划模式 2.5 用户限制 3 集群动态资源池规划 3.1 动态资源池规划样例1 3.2 动态资源池规划样例2 在Yarn中有三种调度器可以...

    论文研究-改进的Hadoop作业调度算法.pdf

    在此基础上对Yarn的FairScheduler算法进行了改进,形成了考虑节点性能的调度算法。重新对Hadoop源码进行了编译,在所搭建的Hadoop平台上进行了对比实验,证明了加入节点性能指标有效解决了Hadoop负载均衡问题,对...

    yarn.lock yarn install 安装失败,使用官方下载的yarn.lock文件

    npm install -g yarn yarn install 安装失败,使用官方下载的yarn.lock文件

    hadoop-yarn-api-2.5.1-API文档-中文版.zip

    赠送jar包:hadoop-yarn-api-2.5.1.jar; 赠送原API文档:hadoop-yarn-api-2.5.1-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.5.1-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-api-2.5.1.pom; 包含翻译后...

    yarn msi 安装文件 (yarn-1.0.2.msi )

    现在官网下载缓慢,这里可以直接下载安装,所以分享给大家,以供直接下载,版本号 yarn-1.0.2.msi

    yarn 前端打包工具指定配置文件

    yarn 前端打包工具指定配置文件

    YARN Essentials.PDF

    YARN Essentials

    hadoop-yarn-client-2.6.5-API文档-中文版.zip

    赠送jar包:hadoop-yarn-client-2.6.5.jar; 赠送原API文档:hadoop-yarn-client-2.6.5-javadoc.jar; 赠送源代码:hadoop-yarn-client-2.6.5-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-client-2.6.5.pom;...

    Hadoop的yarn详解

    详细介绍了Hadoop2.x的资源管理框架yarn,内容丰富,很有帮助。

    apache hadoop 2.7.2.chm

    Fair Scheduler ResourceManager Restart ResourceManager HA Node Labels Web Application Proxy YARN Timeline Server Writing YARN Applications YARN Commands NodeManager Restart DockerContainer...

    Hadoop之YARN思维导图

    YARN思维导图

    Hadoop大数据平台构建、YARN配置、启动与验证教学课件.pptx

    YARN配置、启动与验证 YARN配置、启动与验证 序号 任务名称 任务一 YARN组件参数配置 任务二 MapReduce组件参数配置 任务三 配置SSH无密钥登录(slave1为主节点) 任务四 分发YARN与MapReduce配置文件 任务五 启动...

    yarn-1.22.0.msi

    现在官网下载缓慢,这里可以直接下载最新版本安装,版本号 yarn-1.22.0.msi yarn是facebook发布的一款取代npm的包管理工具。 快速、可靠、安全的依赖管理工具

    yarn-1.21.1.msi

    Yarn是 Facebook 提供的替代 npm 的工具具=

    yarn架构与讲解

    yarn架构详解,关于大数据yarn资源调度的详解

    yarn-1.19.2.msi

    Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码,或者分享自己的代码。 Yarn 做这些快捷、安全、可靠,所以你不用担心什么。 通过Yarn你可以使用其他开发者针对不同问题的解决方案,使...

    yarn 1.6 WIN安装文件

    yarn安装包给不能下载的用户提供下载,欢迎下载。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    yarn安装.docx

    yarn安装.docx

    yarn基本运作流程

    yarn各节点运作流程

Global site tag (gtag.js) - Google Analytics