【问题标题】:Job and Task Scheduling In HadoopHadoop 中的作业和任务调度
【发布时间】:2013-10-05 14:03:32
【问题描述】:

当我阅读有关延迟公平调度in this slide 时,我对 Hadoop 中的“作业调度”和“任务调度”这两个术语有点困惑。

如果我的以下假设有误,请纠正我:

  1. 默认调度程序、容量调度程序和公平调度程序仅在用户调度多个作业时在作业级别有效。如果系统中只有一个工作,它们就不会发挥任何作用。这些调度算法构成了“作业调度”的基础

  2. 每个作业可以有多个 map 和 reduce 任务,它们是如何分配给每台机器的?如何为单个作业安排任务? “任务调度”的依据是什么?

【问题讨论】:

  • 我不确定你在说什么。我打开了您正在链接的演示文稿,没有一个提到“作业调度”或“任务调度”一词。我还看了整篇论文,没有一次提到“任务调度”,只有一次提到“作业调度”,其中作者解释了作业调度在 Hadoop 中的工作原理(版本 1,而不是版本 2 )。请指出延迟安排文件或演示文稿中让您感到困惑的特定部分。
  • 我看不懂幻灯片 6 和 7,其中显示了每个作业的计划任务。

标签: java hadoop mapreduce mapper reducers


【解决方案1】:

公平调度器的情况下,当有单个作业在运行时,该作业会使用整个集群。当提交其他作业时,将释放的任务槽分配给新作业,以便每个作业获得大致相同的 CPU 时间。

默认的 Hadoop 调度程序不同,它形成一个作业队列,这可以让短作业在合理的时间内完成,而不会让长作业挨饿。这也是在多个用户之间共享集群的简单方法。公平共享也可以与作业优先级一起使用 - 优先级用作权重来确定每个作业获得的总计算时间的比例。

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

【讨论】:

  • 如果系统中只有一个作业,我可以假设作业调度器类型不起作用
  • 如果系统中只有一个作业,那么该作业的不同机器上的任务如何调度?
  • 在公平调度程序的情况下,与任务相关的作业使用集群的全部功能,如上所述。
  • 您还有什么要讨论的吗?
  • 是的,除非它是容量调度程序,否则它们无关紧要,其中可以配置单个正在运行的作业对任务的额外插槽的使用。见mapred.capacity-scheduler.queue.<queue-name>.maximum-capacity
猜你喜欢
  • 2018-09-03
  • 2014-10-27
  • 1970-01-01
  • 1970-01-01
  • 2017-10-11
  • 2011-03-09
  • 2018-10-17
  • 2015-01-06
  • 2013-03-21
相关资源
最近更新 更多