Знание использования маппера и редуктора

Я использую свиной латинский скрипт на 550 ГБ данных. Редуктор по умолчанию 1. Для получения результата требуется около 38 минут. Я хотел знать, ускорит ли выполнение скрипта увеличение количества редукторов.

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

Кроме того, мне хотелось узнать концепцию настройки картографа и редукторов.


person user3548020    schedule 22.04.2014    source источник
comment
если вам нужно более подробное объяснение, дайте мне знать   -  person backtrack    schedule 22.04.2014


Ответы (4)


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

Вы можете установить количество редукторов в свинье, используя ключевое слово «Параллельный». пример: A = ЗАГРУЗИТЬ 'мой файл' AS (t, u, v); B = ГРУППА A ПО ПАРАЛЛЕЛИ 18;

Количество преобразователей определяется размером входных данных и используемым форматом ввода. Количество преобразователей обычно равно количеству разделений ввода.

person MadhuGujjalapudi    schedule 22.04.2014

Предыдущие ответы не обязательно верны для вашей ситуации. Это правда, что если у вас есть множество ключей редукции и ваш набор данных не сильно смещен в сторону одного из них, а этапы перетасовки и/или редукции являются узким местом в вашей работе, и у вас есть несколько ядер, доступных для использования в качестве редукторов, то добавление большего количества редукторов поможет. В Pig вы можете указать номер, который хотите использовать, с предложением PARALLEL.

Как уже упоминалось, есть случаи, когда добавление дополнительных редукторов вам не поможет:

  1. У вас есть один ключ сокращения для большинства ваших данных. Если большая часть ваших данных приводит к одному и тому же ключу сокращения, все выходные данные карты для этого ключа будут отправлены в один редуктор. Если вы добавите больше редюсеров, вы обнаружите, что другие завершаются очень быстро, но этот редуктор по-прежнему требует очень много времени для завершения. Если это происходит во время Pig JOIN, вы можете обойти эту проблему с помощью предложения USING 'skewed'.
  2. Основным узким местом является чтение данных на этапе сопоставления и их обработка. Вы говорите, что у вас есть 550 ГБ данных. Сколько картографов вы используете? Сколько времени они занимают, чтобы закончить? Добавление большего количества редукторов может только ускорить перетасовку и уменьшить количество фаз.
  3. Вы работаете с небольшим кластером, в котором для задач сокращения доступно очень мало ядер. Если вы настроили локальный кластер Hadoop на своем компьютере, скорее всего, у вас не более 1 или 2 выделенных ядер. сократить задачи. Следовательно, запуск большего количества редукторов будет просто означать, что эти дополнительные редукторы должны ждать своей очереди для процессорного времени, и вы не будете двигаться быстрее.

Помимо добавления редьюсеров, еще один способ ускорить выполнение ваших заданий — сократить любой ненужный вывод карты. Весь вывод карты записывается на диск, затем распределяется по редюсерам, где снова записывается на диск. Дисковый ввод-вывод очень медленный, и если большая часть ваших данных не нужна, выбросьте их на этапе сопоставления. В Pig, например, вы можете просто посчитать количество записей для каждого ключа. В этом случае все данные, кроме ключа, следует выбросить.


Как правило, количество мапперов выбирается автоматически. Есть приемы, которые вы можете использовать, если считаете, что количество картостроителей слишком мало. Например, вы можете обнаружить, что Pig слишком агрессивен в объединении входных файлов, так что у вас есть только один или два преобразователя, которые занимают много времени. В этом случае вы можете SET pig.maxCombinedSplitSize увеличить число. Но обычно количество картографов находится вне вашего контроля.

Количество редукторов, которые вы хотите использовать, зависит от доступных вам ресурсов (например, сколько редукторов можно использовать одновременно? Это нормально, если ваша работа занимает все редукторы в кластере в течение длительного времени?) и характер ваших данных (т. е. они сильно перекошены в сторону одного ключа сокращения?). Также обратите внимание, что у вас будет один выходной файл для каждого редуктора, поэтому в некоторых случаях может возникнуть проблема с большим количеством редукторов.

person reo katoa    schedule 22.04.2014

Да, конечно, у вас может быть более одного редуктора.

введите здесь описание изображения

Разные цвета обозначают разные клавиши. Все значения с одним и тем же ключом представляются одной задаче сокращения.

Это означает, что у вас может быть несколько редукторов для разных ключей.

Обратитесь по этой ссылке

https://developer.yahoo.com/hadoop/tutorial/module4.html

person backtrack    schedule 22.04.2014

Вы можете использовать функцию Parallel, доступную в PIG. Перейдите по этой ссылке для получения дополнительной информации.Параллельная функция PIG

person Pradyumna Mohapatra    schedule 22.04.2014