Hadoop Namenode不能启动 dfs/name is in an inconsistent

简介: <div style="font-family:'lucida Grande',Verdana,'Microsoft YaHei'; font-size:14px; line-height:23.8px"> <h1 style="font-size:22px; font-weight:normal; margin:0px 0px 10px; padding:0px; font-famil

Hadoop Namenode不能启动 dfs/name is in an inconsistent


前段时间自己的本机上搭的Hadoop环境(按文档的伪分布式),第一天还一切正常,后来发现每次重新开机以后都不能正常启动,

在start-dfs.sh之后jps一下发现namenode不能正常启动,按提示找到logs目录下namenode的启动log发现如下异常

org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-javoft/dfs/name is in an inconsistent state: storage di rectory does not exist or is not accessible. 
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:291) 
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:97) 
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:379) 
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:353) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:254) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:434) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1153) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1162) 
2011-07-23 12:48:43,125 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException :  Directory /tmp/hadoop-javoft/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible. 
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:291) 
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:97) 
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:379) 
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:353) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:254) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:434) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1153) 
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1162)

2011-07-23 12:48:43,126 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 

Directory does not exist?但是为什么刚装完时是存在的呢,抱着试试看的态度,再次执行。

hadoop namenode -format

执行之后再启动,namenode启动成功了,说明上面does not exist的目录在format namenode的时候重新建起来了,但是如果每次重启都要format namenode,也太不靠谱了,不止是麻烦,更大的麻烦是里面的数据不能总被无情的delete掉啊,问题必须解决。

Directory /tmp/hadoop-javoft/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.这 里的目录既然是在tmp下面的,回忆一下,tmp目录下的文件是临时文件会被定期删除的,貌似bug已经露出水面。那就重启计算机试试是不是因为这,重启 之前检查一下tmp目录下面确定几个format namenode之后应该有的目录都有的,重启之后,发现全部被删掉。在执行一次 start-dfs.sh,看到tmp目录下面建了一些目录,但是dfs/name目录仍然不存在,在start-dfs.sh时候建了一部分目录和文 件。而dfs/name需要在hadoop namenode -format时建立。问题清楚了。

解决方案就很简单,这些目录的位置都是根据hadoop.tmp.dir的位置确定的,所以只需要在conf/core-site.xml覆盖hadoop.tmp.dir的默认值即可:

...
<property>
   <name>hadoop.tmp.dir</name>
   <value>/home/javoft/Documents/hadoop/hadoop-${user.name}</value>
   <description>A base for other temporary directories.</description>
</property>
...

如此问题解决。。。


1、问题描述:
第三周课程中,测试web管理界面,发现连接不上。
用 jps命令检查管理节点发现 namenode没有启动
只有3个进程
7160 JobTracker
7097 SecondaryNameNode
7310 Jps

关闭重启:
stop-all.sh
start-all.sh

问题依旧。

现象总结:第一次执行正常,操作系统重启后namenode无法启动。

2、查找原因
1)查找日志(日志: /hadoop/hadoop-0.20.2/logs):
发现有如下记录:
NodeMetrics: Initializing NameNodeMeterics using context objectrg.apache.hadoo
p.metrics.spi.NullContext
2013-03-05 20:38:06,038 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem
: fsOwner=hadoop,hadoop
2013-03-05 20:38:06,038 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem
: supergroup=supergroup
2013-03-05 20:38:06,038 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem
: isPermissionEnabled=true
2013-03-05 20:38:06,062 INFO org.apache.hadoop.hdfs.server.namenode.metrics.FSNa
mesystemMetrics: Initializing FSNamesystemMetrics using context objectrg.apach
e.hadoop.metrics.spi.NullContext
2013-03-05 20:38:06,063 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem
: Registered FSNamesystemStatusMBean
2013-03-05 20:38:06,187 INFO org.apache.hadoop.hdfs.server.common.Storage: Stora
ge directory /tmp/hadoop-hadoop/dfs/name does not exist.

2013-03-05 20:38:06,189 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesyste
m: FSNamesystem initialization failed.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tm
p/hadoop-hadoop/dfs/name is in an inconsistent state: storage directory does not
exist or is not accessible.
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(
FSImage.java:290)
        at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDire
ctory.java:87)

2)检查/tmp目录发现确实没有hadoop-hadpp目录

3、问题解决:

现在问题比较明确了,是临时目录不存在导致。
/tmp/hadoop-hadoop/dfs/name是一个临时的文件夹,系统每次重启时都会进行删除,在配置文件中进行修改就可。

conf/core-site.xml
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/javoft/Documents/hadoop/hadoop-${user.name}</value>
    <description>A base for other temporary directories.</description>
</property>
注意:<value>的值根据自己的情况调整。(需要提前准备好,mkdir /hadoop/tmp)

重新格式化
stop-all.sh
(数据节点上的data目录也要重建)
bin/hadoop namenode -format
start-all.sh
jps检查已经正常。

重启操作系统测试,也正常,问题解决。
目录
相关文章
|
7月前
|
存储 分布式计算 Hadoop
Hadoop数据块分散存储NameNode管理
【4月更文挑战第17天】Hadoop是一个开源的分布式计算框架,依赖HDFS进行分布式存储。文件被分割成数据块分散在DataNode上,NameNode负责元数据管理和协调,确保数据可靠性。NameNode的高可用性配置能防止单点故障,保证系统稳定性。这套机制支持高效、可靠和可扩展的大数据存储与访问。
82 3
|
存储 分布式计算 Hadoop
aws s3常用命令、hdfs dfs/hadoop fs常用命令
aws s3常用命令、hdfs dfs/hadoop fs常用命令
1197 0
|
2月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
77 5
|
2月前
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
36 4
|
4月前
|
存储 分布式计算 Hadoop
|
4月前
|
存储 分布式计算 Hadoop
Hadoop 中 NameNode 和 DataNode 的角色
【8月更文挑战第12天】
347 4
|
4月前
|
存储 分布式计算 资源调度
|
5月前
|
分布式计算 Hadoop
Hadoop中NameNode故障
【7月更文挑战第11天】
79 3
|
6月前
|
存储 分布式计算 Hadoop
|
7月前
|
存储 分布式计算 Hadoop
Hadoop节点名称节点(NameNode)
【5月更文挑战第17天】
271 3

相关实验场景

更多