Hadoop NameNode启动后自动关闭解决方法
阅读原文时间:2023年09月07日阅读:3

Hadoop NameNode启动后过一会自动关闭了,查看日志文件报内存溢出异常:

tail -100 /bigdata/logs/hadoop/hadoop-root-namenode-node1.log

解决方法:

修改配置文件$HADOOP_HOME/etc/hadoop/hadoop-env.sh,增加NameNode和SecondaryNamenode的内存。

Hadoop为各个守护进程(namenode、secondaryNamenode、datanode)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认大小为1000MB。大部分情况下,这个统一设置的值可能并不适合。例如对于NameNode节点,1000M的内存只能存储几百万个文件的数据块的引用。

增大NameNode的内存,即修改hadoop-env.sh文件中HADOOP_NAMENODE_OPTS参数,添加配置 -Xmx2048m (设置为2048MB)。如果要设置SecondaryNamenode的使用内存,同样通过设置HADOOP_SECONDARYNAMENODE_OPTS参数来提高SecondaryNamenode的使用内存。另需注意服务器的实际内存大小。

例如以下解决方法,添加NameNode最大内存4G,最小内存4G:

修改完成后,启动HDFS,查看HDFS的文件,此时发现报拒绝连接的异常:

查看HDFS Web界面,发现NameNode正在启动(还没有启动完),因为NameNode启动时需要读取元数据信息,若数据量太大,则启动时间比较长:

待NameNode启动完成后,再查询数据发现一切正常了。