как настроить mapred.reduce.parallel.copies? - PullRequest
8 голосов
/ 27 декабря 2011

После чтения http://gbif.blogspot.com/2011/01/setting-up-hadoop-cluster-part-1-manual.html мы хотим поэкспериментировать с mapred.reduce.parallel.copies.

В блоге упоминается "очень внимательно следите за бревнами".Откуда нам знать, что мы достигли сладкого места?что мы должны искать?как мы можем обнаружить, что мы чрезмерно распараллеливаем?

Ответы [ 2 ]

6 голосов
/ 24 апреля 2013

Для этого вам нужно в основном искать 4 вещи: процессор, оперативную память, диск и сеть. Если ваша установка пересекает порог этих метрик, вы можете сделать вывод, что вы раздвигаете пределы. Например, если вы установили значение «mapred.reduce.parallel.copies» на значение, намного превышающее число доступных ядер, в результате вы получите слишком много потоков в состоянии ожидания, что основано на этом свойстве Threads будет создан для получения выходных данных карты. В дополнение к этому сеть может быть перегружена. Или, если слишком много промежуточных выходных данных для перестановки, ваша работа станет медленной, так как в этом случае вам потребуется перестановка на основе диска, которая будет медленнее перестановки на основе ОЗУ. Выберите разумное значение для «mapred.job.shuffle.input.buffer.percent», основываясь на вашей оперативной памяти (по умолчанию 70% кучи редуктора, что обычно хорошо). Итак, это своего рода вещи, которые скажут вам, будете ли вы чрезмерно распараллеливать или нет. Есть много других вещей, которые вы должны рассмотреть. Я бы порекомендовал вам ознакомиться с главой 6 «Руководства по определению Hadoop».

Некоторые из мер, которые вы могли бы предпринять, чтобы повысить эффективность своей работы, похожи на использование объединителя для ограничения передачи данных, включения промежуточного сжатия и т. Д.

НТН

P.S .: Ответ не очень специфичен только для "mapred.reduce.parallel.copies". Он рассказывает о настройке вашей работы в целом. Собственно говоря, установка только этого свойства вам не сильно поможет. Вы должны рассмотреть и другие важные свойства.

1 голос
/ 29 апреля 2013

Достичь «сладкого места» - это просто найти параметры, которые дают вам наилучший результат для любого показателя, который вы считаете наиболее важным, обычно общее время работы. Чтобы выяснить, какие параметры работают, я бы предложил использовать следующие инструменты профилирования, которые поставляются с Hadoop, MrBench, TestDFSIO и NNBench. Они находятся в hadoop-mapreduce-client-jobclient - *. Jar.

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

hadoop ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...