簡體   English   中英

錯誤:Java堆空間

[英]Error: Java heap space

在Ubuntu中,當我運行hadoop示例時:

$bin/hadoop jar hadoop-examples-1.0.4.jar grep input output 'dfs[a-z.]+' 

$echo $HADOOP_HEAPSIZE
2000

在日志中,我收到錯誤:

INFO mapred.JobClient:任務ID:attempt_201303251213_0012_m_000000_2,狀態:FAILED 錯誤:Java堆空間 13/03/25 15:03:43 INFO mapred.JobClient:任務ID:attempt_201303251213_0012_m_000001_2,狀態:FAILED錯誤:Java堆空間13/03/25 15:04:28 INFO mapred.JobClient:作業失敗:失敗的地圖任務數超過了允許的限制。 FailedCount:1。LastFailedTask:task_201303251213_0012_m_000000 java.io.IOException:作業失敗! org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1265)org.apache.hadoop.examples.Grep.run(Grep.java:69)atg.apache.hadoop.util.ToolRunner.run (ToolRunner.java:65)org.apache.hadoop.examples.Grep.main(Grep.java:93)

讓我們知道問題是什么。

很明顯,你已經用完了分配給Java的堆大小。 所以你應該嘗試增加它。

為此,您可以在執行hadoop命令之前執行以下命令:

export HADOOP_OPTS="-Xmx4096m"

或者,您可以通過在mapred-site.xml文件中添加以下永久設置來實現相同的功能,此文件位於HADOOP_HOME/conf/

<property>
    <name>mapred.child.java.opts</name>
    <value>-Xmx4096m</value>
</property>

這會將您的Java堆空間設置為4096 MB(4GB),如果可行,您甚至可以先使用較低的值嘗試它。 如果這也沒有用,那么如果你的機器支持它就增加它,如果沒有,那么移動到具有更多內存的機器並嘗試那里。 堆空間只是意味着沒有足夠的可用於Java的RAM。

更新:對於Hadoop 2+,請在mapreduce.map.java.opts中進行更改。

<property>
   <name>mapred.child.java.opts</name>
  <value>-Xmx4096m</value>
</property>

適合我。

export HADOOP_OPTS =“ - Xmx4096m”

不起作用

使用Hadoop 2.5.0-cdh5.2.0,這對我來說可以改變本地(順序)java進程的堆大小:

export HADOOP_HEAPSIZE=2900
hadoop jar analytics.jar .....

它起作用的原因是/usr/lib/hadoop/libexec/hadoop-config.sh有

# check envvars which might override default args
if [ "$HADOOP_HEAPSIZE" != "" ]; then
  #echo "run with heapsize $HADOOP_HEAPSIZE"
  JAVA_HEAP_MAX="-Xmx""$HADOOP_HEAPSIZE""m"
  #echo $JAVA_HEAP_MAX
fi

如果在mapred-site.xml上添加屬性

<property>
   <name>mapred.child.java.opts</name>
  <value>-Xmx2048m</value>
</property>

有時它會發生另一個因為它超過虛擬內存限制在這種情況下,你必須添加

<property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>4.2</value>
</property>

在yarn-site.xml上

因為它的默認2.1G有時太小了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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