簡體   English   中英

運行簡單的mapreduce作業時出現錯誤“ java.lang.OutOfMemoryError:Java堆空間”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM