【问题标题】:What is the difference between the fair and capacity schedulers?公平调度程序和容量调度程序有什么区别?
【发布时间】:2018-08-16 23:30:24
【问题描述】:

我是 Hadoop 世界的新手,想了解公平调度程序和容量调度程序之间的区别。另外,我们什么时候应该使用每一个?请以简单的方式回答,因为我在互联网上阅读了很多东西,但我没有从中得到太多。

【问题讨论】:

    标签: hadoop scheduler


    【解决方案1】:

    公平调度是一种将资源分配给作业的方法,以使所有作业在一段时间内平均获得同等的资源份额。当有一个作业在运行时,该作业会使用整个集群。当提交其他作业时,将释放的任务槽分配给新作业,以便每个作业获得大致相同的 CPU 时间。与形成作业队列的默认 Hadoop 调度程序不同,这可以让短作业在合理的时间内完成,而不会饿死长作业。在多个用户之间共享集群也是一种合理的方式。最后,公平共享还可以与作业优先级一起使用 - 优先级用作权重来确定每个作业应该获得的总计算时间的比例。

    CapacityScheduler 旨在允许共享大型集群,同时为每个组织提供最低容量保证。中心思想是 Hadoop Map-Reduce 集群中的可用资源被分配给多个组织,这些组织根据计算需求共同为集群提供资金。还有一个额外的好处是,组织可以访问任何未被其他人使用的多余容量。这以具有成本效益的方式为组织提供了弹性。

    【讨论】:

    • 所以当多个组织使用集群时使用的容量调度器来保证每个组织的最小容量。还有关于默认的 hadoop 调度程序,如果短作业在长作业之后出现,它必须等到长作业完成,对吧?!因为他们在排队。
    • 你是对的,容量调度器试图为每个用户和每个组织模拟一个单独的 FIFO/优先级集群,而不是在所有作业之间执行公平共享。容量调度器还支持在每个队列上配置等待时间,如果它低于其公平份额,则允许抢占其他队列的任务。
    • 复制粘贴时要注明出处...iosrjournals.org/iosr-jce/papers/Vol15-issue1/…
    • @user3484461 CapacityScheduler 不支持抢占。 hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/… 说(在弹性标题下)“当在未来某个时间点运行低于容量的队列对这些资源有需求时,随着在这些资源上安排的任务完成,它们将被分配给运行低于容量的队列上的应用程序(不支持抢占)。”
    • @user3484461,我不确定这是错字还是误读。官方文档(hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/…)说Capacity Scheduler DOES SUPPORT pre-emption。
    【解决方案2】:

    以下是两个调度程序的功能比较。

    【讨论】:

      【解决方案3】:

      公平调度器,分配资源池(按权重),每个池内公平共享

      Capacity Scheduler,将资源分配给池,每个池内都有 FIFO 调度

      容量调度程序旨在允许共享大型集群,同时为每个组织提供容量保证。有可能过剩的产能不被其他人使用。

      【讨论】:

        猜你喜欢
        • 2015-02-09
        • 2019-04-13
        • 2018-07-17
        • 2021-07-16
        • 1970-01-01
        • 2021-12-23
        • 2016-07-10
        • 2018-02-06
        • 1970-01-01
        相关资源
        最近更新 更多