2015-12-12 1 views
0

У меня есть 100 карт и 1 редуктор, работающий в задании. Как улучшить работу?Советы по улучшению работы MapReduce в Hadoop

Согласно моему пониманию: использование объединителя может значительно улучшить производительность. Но что еще нам нужно настроить для повышения производительности рабочих мест?

ответ

0

С ограниченным объемом данных в этом вопросе (размер входного файла, размер блока HDFS, среднее время обработки карты, количество слотов Mapper & сокращение слотов в кластере и т. Д.), Мы не можем предложить советы.

Но есть некоторые общие рекомендации по улучшению производительности.

  1. Если каждая задача занимает меньше 30-40 секунд, уменьшить количество задач
  2. Если работа имеет более 1TB ввода, рассмотреть вопрос об увеличении размера блока входного набора данных 256M или даже 512M, чтобы количество задач было меньше.
  3. До тех пор, как каждая задача выполняется по крайней мере 30-40 секунд, увеличить число задач Mapper к некоторому кратному числу Mapper слотов в кластере
  4. Количество снижающих задач на работу должна быть равна до или немного меньше, чем количество слотов уменьшения в кластере.

еще несколько советов:

  1. Настройки кластер правильно с правильных диагностическими инструментов
  2. Использование сжатие когда вы пишете промежуточные данные на диск
  3. номер дудки Карты & Сократить задачи согласно приведенным выше советам
  4. Incorporate комбинатор везде, где это уместно
  5. Использование Большинство соответствующих типов данных s для вывода данных (Не используйте LongWritable когда диапазон выходных значений в Integer диапазоне. IntWritable является правильным выбором в данном случае)
  6. Многократного Writables
  7. Есть права профилирующих инструментов

Посмотрите на этой cloudera статье еще на несколько советов.