【问题标题】:Hadoop Fair Scheduler not assigning tasks to some nodesHadoop Fair Scheduler 未将任务分配给某些节点
【发布时间】:2013-02-16 07:45:38
【问题描述】:

我正在尝试运行 Fair Scheduler,但它没有将 Map 任务分配给仅运行一项作业的某些节点。我的理解是公平调度程序将使用conf 槽限制,除非存在多个作业,此时公平计算开始。我还尝试在fair-scheduler.xml 中将所有队列设置为 FIFO,但我得到相同的结果.

我已经在所有mapred-site.xml 文件中使用mapreduce.jobtracker.taskscheduler 参数设置了调度程序(尽管我相信只有JobTracker 需要它)并且一些节点在接收和运行Map 任务时没有问题。但是,其他节点要么永远得不到任何 Map 任务,要么得到一轮 Map 任务(即所有槽都被填满一次),然后再也得不到。

我尝试将此作为开发自己的 LoadManager 的先决条件,因此我继续将调试 LoadManager 放在一起。从日志消息中,我可以看到问题节点一直在请求 Map 任务,并且它们的插槽是空的。但是,它们从未被分配任何。

所有节点都与默认调度程序完美配合。我是在启用 Fair Scheduler 时才开始遇到这个问题的。

有什么想法吗?有人有这个工作,并采取了我错过的一步吗?

编辑:值得注意的是,Fair Scheduler Web UI 页面指示正确的 Fair Share 计数,但 Running 列总是较少。我正在使用默认的每用户池,一次只有 1 个用户和 1 个作业。

【问题讨论】:

    标签: hadoop scheduler


    【解决方案1】:

    原因是未记录的mapred.fairscheduler.locality.delay 参数。有问题的节点位于禁用 HDFS 的不同机架上,使得这些节点上的所有任务都不是本地机架。因此,由于 Fair Scheduler 的延迟调度算法(如 here 所述),它们会产生很大的延迟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多