Hadoop中的作业和任务调度

GoT*_*GoT 5 java hadoop mapreduce reducers mapper

当我在阅读本幻灯片中有关延迟公平调度的内容时,我对Hadoop中的"作业调度"和"任务调度"这两个术语感到困惑.

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

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

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

SSa*_*ker 5

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

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

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