Hadoop中的作业和任务调度

时间:2013-09-29 18:43:13

标签: java hadoop mapreduce mapper reducers

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

如果我在以下假设中出错,请纠正我:

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

  2. 每个作业都可以有多个map和reduce任务以及如何为每台机器分配任务?如何为单个工作安排任务? “任务调度”的基础是什么?

1 个答案:

答案 0 :(得分:5)

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

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

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