Как определить MapReduce, сколько картографов использовать? - PullRequest
2 голосов
/ 14 сентября 2011

Я пытаюсь ускорить оптимизацию задания MapReduce.

Можно ли как-то сказать hadoop использовать определенное количество процессов картографирования / редуктора?Или, по крайней мере, минимальное количество процессов сопоставления?

В документации указано, что вы можете сделать это с помощью метода

public void setNumMapTasks(int n)

класса JobConf.

Этот способ не устарел, поэтому я начинаю класс «Работа с работой».Как правильно это сделать?

1 Ответ

6 голосов
/ 14 сентября 2011

Количество заданий на карте определяется количеством блоков на входе.Если размер входного файла составляет 100 МБ, а размер блока HDFS - 64 МБ, то входной файл займет 2 блока.Таким образом, 2 задачи карты будут созданы.JobConf.setNumMapTasks () (1) подсказка для фреймворка.

Число редукторов задается функцией JboConf.setNumReduceTasks ().Это определяет общее количество задач сокращения для работы.Кроме того, параметр mapred.tasktracker.tasks.maximum определяет количество задач сокращения, которые могут выполняться параллельно на одном узле отслеживания заданий.

Более подробную информацию о количестве карт и сокращении рабочих мест можно найти здесь по адресу (2)

(1) - http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/JobConf.html#setNumMapTasks%28int%29
(2) - http://wiki.apache.org/hadoop/HowManyMapsAndReduces

...