При настройке кластера Hadoop какой научный метод установить количество картографов/редукторов для кластера?
Сколько картографов/редьюсеров нужно установить при настройке кластера Hadoop?
Ответы (4)
Формулы нет. Это зависит от того, сколько ядер и сколько памяти у вас есть. Количество маппера + количество редукторов не должно превышать количество ядер в целом. Имейте в виду, что на машине также запущены демоны Task Tracker и Data Node. Одно из общих предложений — больше картографов, чем редукторов. Если бы я был на вашем месте, я бы выполнил одну из своих типичных задач с разумным объемом данных, чтобы попробовать ее.
Цитата из «Hadoop The Definite Guide, 3-е издание», стр. 306
Поскольку задания MapReduce обычно связаны с вводом-выводом, имеет смысл иметь больше задач, чем процессоров, чтобы лучше использовать их.
Величина превышения подписки зависит от загрузки ЦП выполняемыми вами заданиями, но хорошее эмпирическое правило заключается в том, чтобы на один-два раза больше задач (с учетом задач отображения и сокращения), чем количество процессоров.
Процессор в приведенной выше цитате эквивалентен одному логическому ядру.
Но это только в теории, и скорее всего каждый вариант использования отличается от другого, нужно провести какие-то тесты. Но это число может быть хорошим началом для тестирования.
Вероятно, вам также следует обратить внимание на ленивую загрузку редюсеров, которая позволяет запускать редукторы позже, когда это необходимо, поэтому в принципе количество слотов для карт можно увеличить. Хотя у меня нет особого представления об этом, но кажется полезным.
Взято из Мой блог Hadoop Gyan:
Количество картографов определяется в соответствии с принципом локальности данных, как описано ранее. Принцип локальности данных: Hadoop старается изо всех сил запускать задачи сопоставления на узлах, где данные присутствуют локально, чтобы оптимизировать задержку в сети и межузловой связи. Поскольку входные данные разбиваются на части и передаются в разные задачи карты, желательно, чтобы все данные, подаваемые в эту задачу карты, были доступны на одном узле. присутствовать на одном узле, рекомендуется/рекомендуется иметь размер разделения, равный размеру блока HDFS, чтобы задача карты могла использовать преимущества этой локализации данных. Следовательно, 64M данных на один маппер. Если мы видим, что некоторые картографы работают в течение очень короткого промежутка времени, попробуйте уменьшить количество картографов и заставить их работать дольше примерно на минуту.
Количество редукторов должно быть немного меньше, чем количество слотов редукции в кластере (концепция слотов приходит с предварительной настройкой в свойствах трекера заданий/задач при настройке кластера), чтобы все редукторы заканчивались за одну волну и полностью использовать ресурсы кластера.