环境:CentOS 6.3, hadoop 2.6
由于hadoop集群中的namenode服务器cpu故障造成集群无法使用,重启后启动namenode出现错误提示:java.lang.OutOfMemoryError: GC overhead limit exceeded
解决方法:是由于java的内存回收机制造成的, 在hadoop/dfs/name/current有namenode的大量的日志文件,需要修改etc/hadoop/hadoop-env.sh中增加“-Xms30G -Xmx50G”
export HADOOP_NAMENODE_OPTS=”-Xms30G -Xmx50G -Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS”