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