2015-01-06 7 views
1

Я пытаюсь запустить работу сходства элементов mahout на входе, состоит из ~ 250 миллионов пар (строки) в Amazon EMR Cluster (m3.2x Large, 10 core узлы). Я столкнулся с ошибкой размера кучи Java при запуске задания сходства.Ошибка Java Heap Space Ошибка при выполнении задания сходства элементов mahout на Amazon EMR

Вещи, которые я пытался решить эту проблему.

  1. Увеличение размера кучи узлов имен, определив их в загрузчике action.Like этого -
    --bootstrap-действия s3: // elasticmapreduce/самозагрузки-действия/настройки-демоны --args - NameNode-кучного размер = 8192

  2. использования память интенсивная начальной загрузки рекомендованное AWS (s3: // elasticmapreduce/самозагрузка-действия/конфигурация/последние/памяти ресурсоемких)

  3. Установите MAHOUT_HEAPSIZE вручную.

Проблема не решена. Есть ли способ ее решить?

+0

Есть ли какой-либо возможный способ предоставить 250M-входы в разных сегментах? Получаете ли вы ошибку кучи сразу после прохождения входов или происходит ли она после определенного периода? – Payam

+0

Не на самом деле. Он работает в течение некоторого периода времени, а затем получает ошибку в области кучи. –

+0

Хорошо, проблема в том, что у вас действительно недостаточно памяти для запуска этой огромной массы данных (что означает, что вам нужно найти лучший ПК) или у вас есть утечка памяти. Вы используете IDE для запуска этого? Если да, просто «профиль» вашего приложения Java, и вы можете увидеть поведение вашей кучи. Он либо становится все больше и больше, пока не достигнет предела (вариант 1), или он меняется с помощью приложения с необычной манерой (GC не работает должным образом). – Payam

ответ

2

Редко необходимо изменить размер кучи демона по умолчанию в EMR и, более вероятно, jvm контейнера/задачи, который нуждается в настройке (http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/TaskConfiguration_H2.html).

Перед внесением дальнейших изменений вам необходимо определить, какой процесс на самом деле страдает от ошибки кучи, а затем настроиться соответствующим образом.

Если это окажется контейнером/задачей jvm heap, тогда его можно настроить с помощью configure-hadoop (http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html#PredefinedbootstrapActions_ConfigureHadoop).

Также отбросьте интенсивное загрузочное событие, оно предназначено только для AMI 1.x.