【发布时间】:2018-08-16 23:30:24
【问题描述】:
我是 Hadoop 世界的新手,想了解公平调度程序和容量调度程序之间的区别。另外,我们什么时候应该使用每一个?请以简单的方式回答,因为我在互联网上阅读了很多东西,但我没有从中得到太多。
【问题讨论】:
我是 Hadoop 世界的新手,想了解公平调度程序和容量调度程序之间的区别。另外,我们什么时候应该使用每一个?请以简单的方式回答,因为我在互联网上阅读了很多东西,但我没有从中得到太多。
【问题讨论】:
公平调度是一种将资源分配给作业的方法,以使所有作业在一段时间内平均获得同等的资源份额。当有一个作业在运行时,该作业会使用整个集群。当提交其他作业时,将释放的任务槽分配给新作业,以便每个作业获得大致相同的 CPU 时间。与形成作业队列的默认 Hadoop 调度程序不同,这可以让短作业在合理的时间内完成,而不会饿死长作业。在多个用户之间共享集群也是一种合理的方式。最后,公平共享还可以与作业优先级一起使用 - 优先级用作权重来确定每个作业应该获得的总计算时间的比例。
CapacityScheduler 旨在允许共享大型集群,同时为每个组织提供最低容量保证。中心思想是 Hadoop Map-Reduce 集群中的可用资源被分配给多个组织,这些组织根据计算需求共同为集群提供资金。还有一个额外的好处是,组织可以访问任何未被其他人使用的多余容量。这以具有成本效益的方式为组织提供了弹性。
【讨论】:
CapacityScheduler 不支持抢占。 hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/… 说(在弹性标题下)“当在未来某个时间点运行低于容量的队列对这些资源有需求时,随着在这些资源上安排的任务完成,它们将被分配给运行低于容量的队列上的应用程序(不支持抢占)。”
公平调度器,分配资源池(按权重),每个池内公平共享
Capacity Scheduler,将资源分配给池,每个池内都有 FIFO 调度
容量调度程序旨在允许共享大型集群,同时为每个组织提供容量保证。有可能过剩的产能不被其他人使用。
【讨论】: