2

我在 Amazon Elastic MapReduce 上运行一个 hadoop 作业,并且不断收到 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

有没有办法配置reducer一次读取更少的值?不应该根据可用内存自动处理吗?

4

0 回答 0