Общий метод определения настроек Hadoop Conf в кластере с одним узлом - PullRequest
1 голос
/ 02 июля 2011

Мне интересно, как лучше определить соответствующие номера карты и уменьшить количество задач и соответствующий максимальный размер кучи JVM? Для новичков в Hadoop эти свойства установлены в файл mapred-site.xml. Есть ли общая формула, которой я могу следовать, основываясь на количестве (виртуальных) ядер и оперативной памяти?

В своем ответе рассмотрите различные дополнительные процессы Hadoop, созданные до / во время работы обработка и их влияние на использование ОЗУ (см .: https://forums.aws.amazon.com/thread.jspa?threadID=49024)

Как вы реагируете на изменения при переходе от кластера с одним компьютером к кластеру с двумя компьютерами?

Спасибо

SetJmp

1 Ответ

0 голосов
/ 18 ноября 2011

Время прошло, и никто не пытался сформулировать ответ.Поэтому я буду выдвигать некоторые идеи в надежде, что другие укажут на недостатки, если они существуют.

Самая важная вещь в настройке Hadoop - не допускать использования слишком большого количества ресурсов;задания потерпят неудачу, и исключения не всегда помогают быстро определить, что пошло не так.В частности, ресурс памяти вызовет немедленный сбой, и, как указывает вопрос, JVM может попытаться запросить ненужный объем памяти.

Мы должны учитывать процессы, отличные от карты, и сокращать (например, сортировкучто происходит между картой и уменьшением).К сожалению, никто не выдвинул предложение о том, сколько процессов может существовать одновременно.

Итак, вот мое предложение.Если число преобразователей равно M, а число восстановителей равно R, а общее количество виртуальной оперативной памяти на устройстве равно G. В настоящее время я выделяю G / (2 * M + R) объем оперативной памяти для каждого процесса.Коэффициент 2 предполагает, что существует один дополнительный процесс, сортирующий выходные данные каждого процесса карты или выполняющий другую вспомогательную работу.Наконец, я гарантирую, что 2 * M + R

...