Я выполняю задание hadoop в Amazon Elastic MapReduce и продолжаю получать ошибку OutOfMemory. Значения, по общему признанию, немного больше, чем у большинства значений MapReduce, но, кажется, даже когда я резко уменьшу размер, это все же происходит.
Вот трассировка стека:
Error: java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.shuffleInMemory(ReduceTask.java:1698)
at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.getMapOutput(ReduceTask.java:1558)
at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.copyOutput(ReduceTask.java:1407)
at org.apache.hadoop.mapred.ReduceTask$ReduceCopier$MapOutputCopier.run(ReduceTask.java:1339)
Я не совсем уверен, какой код показывать, так как эта трассировка стека полностью выходит за рамки моего кода.
Версия - hadoop 0.20.205
Есть ли способ настроить редуктор на считывание меньших значений за раз? Разве это не должно обрабатываться автоматически в зависимости от доступной памяти?