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

时间:2013-06-29 05:23:17

标签: hadoop

我正在运行单个节点。 NameNode始终在启动群集时失败。我得到了错误。

    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
************************************************************/

我知道有相同的question,我们可以通过格式化NameNode来解决。但我的问题是为什么每次都会收到此错误?这不是一个太大的问题,因为我正在运行Single Node cluster。但在实际生产环境中,这可能会导致数据松散。我猜是因为我正在使用/tmp目录。

1 个答案:

答案 0 :(得分:0)

这可以通过将namenode dir指定到不同的位置来解决,&#34; hdfs-site.xml&#34;在您的Hadoop配置中。通常它需要默认文件:// $ {hadoop.tmp.dir} / dfs / name ..因此,每次重启后,/ tmp目录都被清除,NameNode数据消失了