1、昨天线上部署从库的时候发现HDFS的namenode切到备份服务器上,重启namenode后50070界面非常卡,几分钟后自动中止,查看日志主要有两个错误提示,都是关于内存不够的:
- Hadoop java.lang.OutOfMemoryError: Java heap space
- java.lang.OutOfMemoryError: GC overhead limit exceeded 2、Hadoop权威指南中有下边这段话:
HDFS运行几个月,应该是内存不够,修改namenode的内存大小就好
3、切换到hadoop安装目录下 cd etc/hadoop/hadoop-env.sh
文件,修改HADOOP_NAMENODE_OPTS和HADOOP_SECONDARYNAMENODE_OPTS大小
# export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"
export HADOOP_NAMENODE_OPTS="-Xmx8192m"
# export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS"
export HADOOP_SECONDARYNAMENODE_OPTS="-Xmx8192m"
参考连接: