在运行简单的mapreduce作业时获取错误"java.lang.OutOfMemoryError:Java堆空间"

Rav*_*edi 2 java garbage-collection hadoop jvm

我一直在尝试在RHEL 6中为wordcount运行一个简单的Mapreduce作业,但我一直都会遇到此错误.请帮忙.

13/01/13 19:59:01 INFO mapred.MapTask: io.sort.mb = 100
13/01/13 19:59:01 WARN mapred.LocalJobRunner: job_local_0001
java.lang.OutOfMemoryError: Java heap space
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:949)
    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:674)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
13/01/13 19:59:02 INFO mapred.JobClient:  map 0% reduce 0%
13/01/13 19:59:02 INFO mapred.JobClient: Job complete: job_local_0001
13/01/13 19:59:02 INFO mapred.JobClient: Counters: 0
Run Code Online (Sandbox Code Playgroud)

duf*_*ymo 5

您可能需要为最大堆和最大perm空间增加一些JVM设置.

我建议在Hadoop作业运行时运行Visual VM,这样您就可以了解正在发生的事情.

你在运行多台服务器吗?也许你要求一台服务器做太多.