hadoop—当我试图将整个文件夹作为mapreduce程序的输入时,我面临“java堆空间错误”

2ul0zpep  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(312)

当我试图通过将整个文件夹作为mr作业的输入来运行mapreduce程序时,我遇到了“java堆空间错误”。当我将单个文件作为mr作业的输入时,我没有遇到任何错误。作业已成功运行。

Changes I tried in hadoop-env.sh file:
=====================================
I had increased the memory size from 1024 to 2048MB
export HADOOP_CLIENT_OPTS="-Xmx2048m $HADOOP_CLIENT_OPTS"

Changes in mapred-site.xml:
===========================
<property>
  <name>mapred.child.java.opts</name>
  <value>-Xmx2048m</value>
</property>

通过对这些文件进行更改,我仍然面临“java堆空间错误”。
谁能就这个问题向我提出建议。。。

ukdjmx9f

ukdjmx9f1#

你可以用这样的方法打开你工作的hprof配置文件,
conf.setBoolean("mapred.task.profile", true); conf.set("mapred.task.profile.params", "-agentlib:hprof=cpu=samples," + "heap=sites,depth=6,force=n,thread=y,verbose=n,file=%s"); conf.set("mapred.task.profile.maps", "0-2"); conf.set("mapred.task.profile.reduces", "0-2"); 这将帮助您诊断是什么耗尽了堆。更多细节请参见“hadoop最终指南”第178-181页

相关问题