解决Hadoop运行jar包时MapReduce任务启动前OutOfMemoryError:Java heap space问题
最近在研究Mahout开源代码时尝试利用MapReduce加载本地训练好的机器学习模型至集群并进行分布式预测,整个程序通过Hadoop jar XXXX.jar来执行,
期间由于需要在本地进行模型训练同时训练数据集条目较多模型规模比较大,导致在本地训练模型时JAVA报错:java.error.OutOfMemoryError:Java heap space
遇到问题后尝试通过Idea14的前端配置页面进行配置,无效;尝试在shell中添加-Xmx配置参数,无效;尝试在jdk中更改-Xmx参数,同样无效。
最终在http://bbs.csdn.net/topics/390922318 中找到ID为ramontop1的大神的正确解决方案:
前往hadoop安装目录下的hadoop-env.sh,我的Mac的相应目录路径为$~/hadoop-2.6.1/etc/hadoop/hadoop-env.sh
vi后找到如下的参数配置并添加-Xmx配置:
# Extra Java runtime options. Empty by default. export HADOOP_OPTS="$HADOOP_OPTS -Xmx1024m -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"
之前ramontop1在帖中修改的是:
# The following applies to multiple commands (fs, dfs, fsck, distcp etc) export HADOOP_CLIENT_OPTS="-Xmx1024m $HADOOP_CLIENT_OPTS" #HADOOP_JAVA_PLATFORM_OPTS="-XX:-UsePerfData $HADOOP_JAVA_PLATFORM_OPTS"我并不确定这两块哪一个会实际影响到Hadoop jar命令的执行,因此在两处都进行了配置,由-Xmx512m改为-Xmx1024m,wq后OutOfMemoryError问题解决。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
copyright © 2008-2019 入门客AI创业平台 版权所有 备案号:湘ICP备2023012770号