文章目录
Hadoop问题处理记录
一、ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
1.启动Hadoop报如下错误:
2021-08-04 10:05:28,443 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:327)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:215)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:975)
2.问题分析:
1.Linux系统在每次重启后,hadoop不能正藏启动namenode,需要格式化之后才能再次启动
2.初步认定为namenode格式化问题
3.可能引发这样问题的原因是hadoop的默认格式化路径在/tmp下,但是这个目录每次重启的时候都会被清空,导致namenode格式化出错,而且多次格式化后,也可能回引起hadoop集群的问题。所以必须解决这个问题。
3.处理方法:
修改hadoop下的core-site.xml
<!-- hadoop的内部的数据或者元数据真实的存放路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/apps/hadoop-2.8.1/hdpdata</value>
</property>
修改好之后,手动格式化namenode,生产环境格式化namenode需注意数据问题
hdfs namenode -format
二、云服务器启动hadoop,namenode没启动起来
之前使用虚拟机玩Hadoop,现在使用云服务器安装Hadoop的时候粗心了
1.启动Hadoop问题
[root@hadoop_zxy ~]# jps
13893 SecondaryNameNode
14327 Jps
13545 DateNode
2.解决
首先想到的是hadoop name -format没有成功,尝试了几次删除logs,dpdate等文件都不行
最后想到core-site.xml配置的时候,云服务器有内部IP和外部IP之分,由于习惯了虚拟机,直接将外部IP放这了。
最后将core-site.xml中如下红框内改为内部IP
3.再次启动
[root@hadoop_zxy ~]# jps
13893 SecondaryNameNode
14327 Jps
13545 NameNode
13256 DateNode
三、Failed to start namenode,Directory /tmp/hadoop-root/dfs/name is in an inconsistent state
1.启动Hadoop报如下错误:
2021-08-04 10:05:28,443 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:327)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:215)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:975)
2.问题分析:
1.Linux系统在每次重启后,hadoop不能正藏启动namenode,需要格式化之后才能再次启动
2.初步认定为namenode格式化问题
3.可能引发这样问题的原因是hadoop的默认格式化路径在/tmp下,但是这个目录每次重启的时候都会被清空,导致namenode格式化出错,而且多次格式化后,也可能回引起hadoop集群的问题。所以必须解决这个问题。
处理方法:
修改hadoop下的core-site.xml
<!-- hadoop的内部的数据或者元数据真实的存放路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/apps/hadoop-2.8.1/hdpdata</value>
</property>
修改好之后,手动格式化namenode
hdfs namenode -format