Как изменить память в потоковом задании EMR Hadoop

Я пытаюсь устранить следующую ошибку в потоковом задании Hadoop на EMR.

Container [pid=30356,containerID=container_1391517294402_0148_01_000021] is running beyond physical memory limits

Я пытался искать ответы, но тот, который я нашел, не работает. Моя работа запускается, как показано ниже.

hadoop jar ../.versions/2.2.0/share/hadoop/tools/lib/hadoop-streaming-2.2.0.jar \
 -input  determinations/part-00000 \
 -output  determinations/aggregated-0 \
 -mapper cat \
 -file ./det_maker.py \
 -reducer det_maker.py \
 -Dmapreduce.reduce.java.opts="-Xmx5120M"

Насколько я понимаю, последняя строка выше должна помочь, но я получаю сообщение об ошибке:

ERROR streaming.StreamJob: Unrecognized option: -Dmapreduce.reduce.java.opts="-Xmx5120M"

Как правильно изменить использование памяти? Также есть какая-то документация, которая объясняет эти вещи таким n00bs, как я?


person user3394040    schedule 06.06.2014    source источник


Ответы (1)


Вы не уточнили, какая память у вас заканчивается, физическая или виртуальная.

Для решения обеих проблем обратитесь к документации Amazon: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/TaskConfiguration_H2.html

Обычно решение состоит в том, чтобы увеличить объем памяти на один маппер и, возможно, уменьшить количество мапперов:

s3://elasticmapreduce/bootstrap-actions/configure-hadoop -m mapreduce.map.memory.mb=4000
s3://elasticmapreduce/bootstrap-actions/configure-hadoop -m mapred.tasktracker.map.tasks.maximum=2
person Beka    schedule 05.10.2014