zoukankan      html  css  js  c++  java
  • Yarn的三种调度器

    一、FIFO调度器(先进先出调度)

    上图为FIFO调度器的执行过程示意图。
    FIFO Scheduler是最简单也是最容易理解的调度器,它缺点是不适用于共享集群。大的应用可能会占用所有集群资源,这就导致其它应用被阻塞。在共享集群中,更适合采用Capacity Scheduler或Fair Scheduler,这两个调度器都允许大任务和小任务在提交的同时获得一定的系统资源。从执行过程图中可以看出,在FIFO 调度器中,小任务会被大任务阻塞。

    二、Capacity调度器(容量预先分配调度)

    上图为Capacity调度器的执行过程示意图。
    而对于Capacity调度器,有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间。

    三、Fair调度器(公平分配调度)

    上图为Fair调度器的执行过程示意图。
    在Fair调度器中,我们不需要预先占用一定的系统资源,Fair调度器会为所有运行的job动态的调整系统资源。如下图所示,当第一个大job提交时,只有这一个job在运行,此时它获得了所有集群资源;当第二个小任务提交后,Fair调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。
    需要注意的是,在Fair调度器图中,从第二个任务提交到获得资源会有一定的延迟,因为它需要等待第一个任务释放占用的Container。小任务执行完成之后也会释放自己占用的资源,大任务又获得了全部的系统资源。最终的效果就是Fair调度器即得到了高的资源利用率又能保证小任务及时完成。

  • 相关阅读:
    物理机和虚拟机互相可以ping通,还是无法连接
    CentOS 7: ping Name or service not known
    Ubuntu上安装搜狗输入法(sogou)
    成功安装 tesserocr
    The following untracked working tree files would be overwritten by merge
    切换本地凭据(Windows上登录的GitHub账号)
    配置了SSH后还是每次都要求输入密码
    dpkg dependency problems prevent configuration
    mui 设置应用全屏模式
    解决烦人的缓存问题!
  • 原文地址:https://www.cnblogs.com/sx66/p/12604888.html
Copyright © 2011-2022 走看看