【发布时间】: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 个作业。
【问题讨论】: