![](/img/trans.png)
[英]Error running child : java.lang.OutOfMemoryError: Java heap space
[英]Getting error “java.lang.OutOfMemoryError: Java heap space” while running simple mapreduce job
我一直在嘗試在RHEL 6中為單詞計數運行一個簡單的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
您可能需要增加一些JVM設置以獲得最大堆和最大燙發空間。
我建議您在Hadoop作業運行時運行Visual VM ,以便您可以了解正在發生的事情。
您正在運行多台服務器嗎? 也許您正在要求一台服務器做太多事情。
您可以使用jstat -gcutil
監視JVM的內存使用情況。 這將顯示堆使用量增長的速度。
此外,您還可以啟用GC日志記錄,這是輕量級的,將為您實例化的每個JVM顯示相同的內容:
-XX:+ UnlockDiagnosticVMOptions -XX:+ LogVMOutput -XX:LogFile = jvm.log -XX:+ HeapDumpOnOutOfMemoryError -Xloggc:gc.log -XX:+ PrintGCTimeStamps -XX:+ PrintGCDetails -showversion
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.