Hadoop Fair Scheduler не назначает задачи некоторым узлам - PullRequest
0 голосов
/ 04 июня 2011

Я пытаюсь запустить Fair Scheduler, но он не назначает задачи Map некоторым узлам, когда выполняется только одно задание. Насколько я понимаю, Fair Scheduler будет использовать ограничения слотов conf, если не существует нескольких заданий, и в этот момент начнутся вычисления справедливости. Я также попытался установить все очереди в FIFO в fair-scheduler.xml, но я получаю те же результаты .

Я установил планировщик во всех mapred-site.xml файлах с параметром mapreduce.jobtracker.taskscheduler (хотя я полагаю, что это требуется только для JobTracker), и у некоторых узлов нет проблем при получении и запуске задач Map. Однако другие узлы либо никогда не получают задачи Map, либо получают один раунд задач Map (т. Е. Все слоты заполнены один раз), а затем никогда не получают их снова.

Я попробовал это как предварительное условие для разработки своего собственного LoadManager, поэтому я решил собрать отладочный LoadManager. Из сообщений журнала видно, что проблемные узлы продолжают запрашивать задачи Map и их слоты пусты. Однако они никогда не назначаются.

Все узлы отлично работают с планировщиком по умолчанию. У меня только появилась эта проблема, когда я включил Fair Scheduler.

Есть идеи? У кого-то это работает, и я сделал шаг, который я пропустил?

РЕДАКТИРОВАТЬ: Стоит отметить, что на странице веб-интерфейса Fair Scheduler указан правильный счет Fair Share, но столбец Running всегда меньше. Я использую пулы для каждого пользователя по умолчанию, и у меня есть только 1 пользователь и 1 задание одновременно.

1 Ответ

3 голосов
/ 04 июня 2011

Причиной был недокументированный параметр mapred.fairscheduler.locality.delay.Проблемные узлы были расположены в другой стойке с отключенной HDFS, что делало все задачи на этих узлах локальными.Из-за этого они вели к большим задержкам из-за алгоритма честного планирования задержки, описанного здесь .

...