2014-02-04 2 views
1

Я запускаю задание Hadoop в кластере, который разделяют некоторые из наших приложений. У нас около 40 узлов и 4 слота/узла карты. Всякий раз, когда моя работа (которая не что иное, как mapper) работает, она занимает все 160 слотов и блокирует выполнение других заданий. Я попытался установить свойство из задания «mapred.tasktracker.map.tasks.maximum = 1», а также «mapred.map.tasks» до 30 (чтобы ограничить его только 30 узлами) из кода задачи.Установка количества задач/узла hadoop

conf.setInt ("mapred.tasktracker.map.tasks.maximum", 1); 
    conf.setInt ("mapred.map.tasks", 30); 
    conf.setBoolean ("mapred.map.tasks.speculative.execution", false); 

У меня 2 вопроса:

а. Когда задание выполняется, job.xml отражает «mapred.tasktracker.map.tasks.maximum = 1», но задание по-прежнему заканчивается тем, что занимает 160 слотов.

b. Mapred.map.tasks в job.xml не 30. Это по-прежнему большое число (например, 800).

Любая помощь будет оценена по достоинству.

ответ

0

Я нашел, что лучше всего контролировать максимальное количество картографов, установив размер блока входных файлов при перемещении данных в HDFS. Например, если вы установите размер блока в 1/30 от общего размера, вы получите 30 блоков и, следовательно, не более 30 задач карты.

Hadoop фс -D fs.local.block.size = 134217728 -Положите local_name remote_location

0

Мы можем указать максимальные и минимальные задачи карты для работы, но Hadoop гарантировать доцент исполнения, как это делает для редукторов , Hadoop использует минимальные и максимальные значения заданий карты для оценки и делает все возможное, чтобы количество задач близко к нему. Вы должны использовать планировщик, например, справедливый планировщик в кластере для вашей проблемы. Справедливое планирование - это метод назначения ресурсов для заданий, так что все задания получают в среднем равную долю ресурсов с течением времени.

0

Вы не можете ограничить число номеров карт.

Номер карты подсчитывается по размеру данных и размеру блока. Если ваши данные очень большие, вы можете увеличить размер блока, чтобы уменьшить количество картпертов.

Потому что, если вы ограничите число, преобразователь будет блокироваться для ожидания конца всех других картографов.

Смежные вопросы