yarn FairScheduler 与 CapacityScheduler

CapacityScheduler(根据计算能力调度)

  • CapacityScheduler 允许多个组织共享整个集群, 每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列, 然后再为每个队列分配一定的集群支援, 这样整个集群就可以通过设置多个队列的方式给多个组织提供服务。此外, 队列内部又可以垂直划分, 这样一个组织内部的多个成员就可以共享该队列资源了, 在一个队列内部, 资源的调度采用的是FIFO(First In First Out)策略。
  • CapacityScheduler特点:
    • 容量保证: 可以为每个队列设置资源最低量核对资源使用上限, 所有提交到该队列的程序共享该队列中的资源(注意: 最小容量并不是“总会保证最低容量", 可能会借给其他节点)
    • 灵活性: 如果一个队列中的资源有剩余, 可以暂时共享给那些需要资源的队列, 而一旦该队列有新的应用程序提交, 则其他队列释放的资源会归还给该队列, 这种资源灵活分配的方式明显可以提高资源的利用率;
    • 多租户: 支持多用户共享集群和多应用程序同时运行, 为防止单个应用或者用户或队列独占集群资源, 可为之增加限制, 如设置一个用户或者应用程序可以分配的最大资源数、最大任务运行数;
    • 安全保证: 每个队列有严格的ACLs列表规定它的访问用户, 每个用户可以指定其他哪些用户允许查看自己应用程序的运行状态或者控制应用程序(i.e. kill);
    • 动态更新配置文件: 管理员可以根据需要动态更改各种配置参数, 以实现在线集群管理。

FairScheduler(公平调度)

  • FairScheduler的设计目标: 为所有的应用分配公平的资源 (对公平的定义可以通过参数来设置)。

  • FairScheduler特点:

    • 支持资源抢占

      • 允许调度器杀死占用超过其应占份额资源队列的containers, 这些containers资源便可被分配到应该享有这些资源份额的队列中。

      • 当队列没有任务时, 最小资源可以被其他队列抢走。

      • 当有新的任务进来时, 如果集群有资源则获取资源, 如果没有则会从其他优先级较低的队列中抢占资源来执行任务。

      • 抢占会降低集群的执行效率, 因此被终止的containers需要被重新执行。

        ## 实现抢占功能的全局参数
        yarn.scheduler.fair.preemption=true ## 最小资源分配抢占超时时间
        minimum share preemption timeout ## 公平资源分配抢占超时时间
        fair share preemption timeout

        如果队列的minimum share preemption timeout指定的时间内未获得最小的资源保障, 调度器就会抢占containers

    • 灵活的调度策略配置

      • 允许为每个队列单独设置调度策略 (FIFO、Fair 或 DRF[dominant resource fairness])
    • 提高小应用程序响应时间

      • 采用最大最小公平算法, 小作业可以快速获取资源并运行完成。

三种调度策略对比

  • FIFOScheduler分配资源的顺序和提交应用程序的顺序相同, 不适用于共享集群。大的应用可能会占用所有集群资源, 这就导致其他应用被阻塞。

  • CapacityScheduler中, 有一个专门的队列来运行小任务, 但这会预先占用一定的集群资源, 因此会导致大任务的执行时间会落后于FIFO调度器运行其的时间。

  • FairScheduler中, 我们不需要预先占用一定的系统资源, Fair调度器会为所有运行的job动态的调整系统资源。

yarn调度器 FairScheduler 与 CapacityScheduler的更多相关文章

  1. Yarn 调度器Scheduler详解

    理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资 ...

  2. Hadoop YARN 调度器(scheduler) —— 资源调度策略

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/hadoop_yarn_resource_scheduler 搜了 ...

  3. YARN调度器(Scheduler)详解

    理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资 ...

  4. hadoop之 Yarn 调度器Scheduler详解

    概述 集群资源是非常有限的,在多用户.多任务环境下,需要有一个协调者,来保证在有限资源或业务约束下有序调度任务,YARN资源调度器就是这个协调者. YARN调度器有多种实现,自带的调度器为Capaci ...

  5. Yarn调度器负载模拟器——Yarn Scheduler Load Simulator (SLS)

    一.概述: Yarn调度器有很多实现,如Fifo, Capacity和Fair schedulers等.与其同一时候,正在进行一些优化措施来提高调度器在不同负载和工作场景下的性能.每一个调度器都有自己 ...

  6. Hadoop Yarn调度器的选择和使用

    一.引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色.在讨论其构造器之前先简单了解一下Yarn的架构. 上图是Yarn的基本架构,其中ResourceManager是整个架构的核 ...

  7. 不可不知的资源管理调度器Hadoop Yarn

    Yarn(Yet Another Resource Negotiator)是一个资源调度平台,负责为运算程序如Spark.MapReduce分配资源和调度,不参与用户程序内部工作.同样是Master/ ...

  8. YARN资源调度器

    YARN资源调度器 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述 集群资源是非常有限的,在多用户.多任务环境下,需要有一个协调者,来保证在有限资源或业务约束下有序 ...

  9. Kubernetes增强型调度器Volcano算法分析

    [摘要] Volcano 是基于 Kubernetes 的批处理系统,源自于华为云开源出来的.Volcano 方便 AI.大数据.基因.渲染等诸多行业通用计算框架接入,提供高性能任务调度引擎,高性能异 ...

随机推荐

  1. Linux之系统优化配置

    Linux系统优化配置 更新国内镜像源 国内速度快的常用更新源如下: ​ http://mirrors.sohu.com ​ http://mirrors.163.com [root@greymous ...

  2. 延迟加载以及mybatis一级二级缓存

    延迟加载 延迟加载:在真正使用数据时才发起查询,不用的时候不查询,又叫按需查询(懒加载) 立即加载:不管用不用,只要调用方法,直接发起查询 表关系:一对多     多对一     一对一        ...

  3. Python学习笔记之基础篇(四)列表与元祖

    #### 列表 li = ['alex','wusir','egon','女神','taibai'] ###增加的3种方法 ''' # append li.append('日天') li.append ...

  4. java并发AtomicIntegerArray

    java并发AtomicIntegerArray AtomicIntegerArray的原子性 AtomicIntegerArray的原子性是对数组的元素的,不是数组. 源码基于openjdk 1.8 ...

  5. P1435 回文字串(LCS问题)

    题目背景 IOI2000第一题 题目描述(题目链接:https://www.luogu.org/problem/P1435) 回文词是一种对称的字符串.任意给定一个字符串,通过插入若干字符,都可以变成 ...

  6. Day3-O-Median POJ3579

    Given N numbers, X1, X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi - X ...

  7. java创建线程方式

    1.继承Thread类 public class ThreadCreator extends Thread{ public static void main(String[] args) { //第一 ...

  8. flask-Bootstrap Jinja2 原生 模板 和 jumpserver 模板

    #模板 {% block doc -%} <!DOCTYPE html> <html{% block html_attribs %}{% endblock html_attribs ...

  9. POJ 3274:Gold Balanced Lineup 做了两个小时的哈希

    Gold Balanced Lineup Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13540   Accepted:  ...

  10. Oracle 的DBA考证

    转自 :https://www.cnblogs.com/chunge2050/archive/2013/04/16/3023730.html 详细的了解了几天之后,总结起来就是oracle为DBA认证 ...