Поделиться через


Оптимизация Apache Pig с помощью Apache Ambari в Azure HDInsight

Apache Ambari — это веб-интерфейс для управления кластерами HDInsight и мониторинга. Общие сведения о веб-интерфейсе Ambari см. в статье "Управление кластерами HDInsight" с помощью веб-интерфейса Apache Ambari.

Свойства Apache Pig можно изменить из веб-интерфейса Ambari для настройки запросов Pig. Изменение свойств Pig из Ambari напрямую изменяет свойства Pig в /etc/pig/2.4.2.0-258.0/pig.properties файле.

  1. Чтобы изменить свойства Pig, перейдите на вкладку "Конфигурации Pig" и разверните область "Расширенные свойства pig ".

  2. Найдите, раскомментируйте и измените значение свойства, которое вы хотите изменить.

  3. Нажмите кнопку "Сохранить " в правой верхней части окна, чтобы сохранить новое значение. Для некоторых свойств может потребоваться перезапуск службы.

    Расширенные свойства Apache Pig.

Примечание.

Все параметры уровня сеанса переопределяют значения свойств в pig.properties файле.

Настройка исполняющего модуля

Два модуля выполнения доступны для выполнения скриптов Pig: MapReduce и Tez. Tez является оптимизированным механизмом и гораздо быстрее, чем MapReduce.

  1. Чтобы изменить исполняющий движок, на панели расширенных свойств Pig найдите свойство exectype.

  2. Значение по умолчанию — MapReduce. Измените его на Tez.

Включение локального режима

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

  1. Чтобы включить локальный режим, задайте pig.auto.local.enabledзначение true. По умолчанию используется значение false.

  2. Задания с размером входных данных меньше pig.auto.local.input.maxbytes значения свойства считаются небольшими заданиями. Значение по умолчанию — 1 ГБ.

Копирование кэша jar-файла пользователя

Pig копирует JAR-файлы, необходимые для пользовательских определяемых функций (UDF), в распределенный кэш, чтобы сделать их доступными для узлов задач. Эти банки не изменяются часто. Если этот pig.user.cache.enabled параметр включен, параметр позволяет помещать jar-файлы в кэш для повторного использования заданий, выполняемых одним пользователем. Этот параметр приводит к незначительному увеличению производительности задания.

  1. Чтобы включить, задайте pig.user.cache.enabled значение true. Значение по умолчанию — false.

  2. Чтобы задать базовый путь кэшированных файлов JAR, установите pig.user.cache.location в качестве базового пути. Значение по умолчанию — /tmp.

Оптимизация производительности с помощью параметров памяти

Следующие параметры памяти помогут оптимизировать производительность скрипта Pig.

  • pig.cachedbag.memusage: объем памяти, предоставленной сумке. Сумка является коллекцией кортежей. Кортеж — это упорядоченный набор полей, а поле — это часть данных. Если данные в множестве выходят за рамки заданной памяти, они выгружаются на диск. Значение по умолчанию — 0,2, представляющее 20 процентов доступной памяти. Эта память распределяется между всеми мешками в приложении.

  • pig.spill.size.threshold: пакеты, превышающие пороговое значение размера разлива (в байтах), переливаются на диск. Значение по умолчанию — 5 МБ.

Сжатие временных файлов

Pig создает временные файлы во время выполнения задания. Сжатие временных файлов приводит к увеличению производительности при чтении или записи файлов на диск. Следующие параметры можно использовать для сжатия временных файлов.

  • pig.tmpfilecompression: если значение true, включает временное сжатие файлов. По умолчанию используется значение false.

  • pig.tmpfilecompression.codec: кодек сжатия, используемый для сжатия временных файлов. Рекомендуемые кодеки сжатия — LZO и Snappy для более низкого использования ЦП.

Включить объединение разделённых элементов

При включении маленькие файлы объединяются для уменьшения количества задач на карте. Этот параметр повышает эффективность заданий с большим количеством небольших файлов. Чтобы включить, задайте pig.noSplitCombination значение true. По умолчанию используется значение false.

Настройка мелодий

Количество мапперов контролируется путем изменения свойства pig.maxCombinedSplitSize. Это свойство указывает размер данных, обрабатываемых одной задачей карты. Значением по умолчанию является размер блока файловой системы по умолчанию. Увеличение этого значения приводит к снижению числа задач mapper.

Настройка редукаторов

Количество сокращений вычисляется на основе параметра pig.exec.reducers.bytes.per.reducer. Параметр указывает количество байтов, обрабатываемых каждым редьюсером; по умолчанию — 1 ГБ. Чтобы ограничить максимальное количество редукторов, задайте pig.exec.reducers.max свойство, значение по умолчанию 999.

Дальнейшие действия