org.apache.hadoop.hdfs.server.common.unconsistentstateException:目录/tmp/hadoop/dfs/name处于不一致状态

org.apache.hadoop.hdfs.server.common.unconsistentstateException:目录/tmp/hadoop/dfs/name处于不一致状态,hadoop,Hadoop,我正在运行单节点名称节点在启动群集时总是开始失败。我犯了以下错误 2013-06-29 10:37:29,968 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop/dfs/name is in an

我正在运行单节点<代码>名称节点在启动群集时总是开始失败。我犯了以下错误

    2013-06-29 10:37:29,968 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/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.recoverStorageDirs(FSImage.java:292)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:200)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:627)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:469)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:403)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:437)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:609)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:594)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1169)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1235)
2013-06-29 10:37:29,971 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
2013-06-29 10:37:29,973 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at traw-pc/127.0.0.1
************************************************************/
2013-06-29 10:37:29968致命org.apache.hadoop.hdfs.server.namenode.namenode:namenode join异常
org.apache.hadoop.hdfs.server.common.unconsistentstateException:目录/tmp/hadoop/dfs/name处于不一致状态:存储目录不存在或不可访问。
位于org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:292)
位于org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:200)
位于org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:627)
位于org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:469)
位于org.apache.hadoop.hdfs.server.namenode.namenode.loadNamesystem(namenode.java:403)
位于org.apache.hadoop.hdfs.server.namenode.namenode.initialize(namenode.java:437)
位于org.apache.hadoop.hdfs.server.namenode.namenode.(namenode.java:609)
位于org.apache.hadoop.hdfs.server.namenode.namenode.(namenode.java:594)
位于org.apache.hadoop.hdfs.server.namenode.namenode.createNameNode(namenode.java:1169)
位于org.apache.hadoop.hdfs.server.namenode.namenode.main(namenode.java:1235)
2013-06-29 10:37:29971 INFO org.apache.hadoop.util.ExitUtil:以状态1退出
2013-06-29 10:37:29973 INFO org.apache.hadoop.hdfs.server.namenode.namenode:SHUTDOWN\u MSG:
/************************************************************
关闭消息:关闭traw pc/127.0.0.1上的NameNode
************************************************************/

我知道也有相同的问题,我们可以通过格式化
NameNode
来解决。但我的问题是,为什么每次都会出现这种错误?这不是一个很大的问题,因为我正在运行
单节点集群
。但在实际生产环境中,这可能会导致数据松动。我猜是因为我使用的是
/tmp
目录

这可以通过在Hadoop配置中将namenode dir指定到另一个位置“hdfs site.xml”来解决。通常它采用默认文件://${hadoop.tmp.dir}/dfs/name。。因此,每次重新启动后,/tmp目录被清除,NameNode数据消失

你说得对。每次重新启动后,/tmp目录都会被清除。您最好先更改core-site.xml中的hadoop.tmp.dir,将其默认为/tmp/hadoop-${user.name},然后移动到另一个目录,但我不会删除其他文件夹。。