Hadoop Namenode目录位于意外位置

Hadoop Namenode目录位于意外位置,hadoop,hdfs,Hadoop,Hdfs,我在hdfs-site.xml中设置了dfs.name.dir,如下所示: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.name.dir</name> <value>>/mnt/data/nn<

我在hdfs-site.xml中设置了dfs.name.dir,如下所示:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
 <property>
    <name>dfs.name.dir</name>
    <value>>/mnt/data/nn</value>
  </property>
 <property>
    <name>dfs.data.dir</name>
    <value>>/mnt/data/dfs</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>
这恰好是以下各项的值:

$HADOOP_HOME>[value of dfs.name.dir]
以下是namenode日志:

2013-11-01 13:38:59,806 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
2013-11-01 13:38:59,806 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: Caching file names occuring more than 10 times
2013-11-01 13:38:59,808 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /usr/local/Cellar/hadoop/1.2.1/libexec/>/mnt/data/nn does not exist
2013-11-01 13:38:59,809 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /usr/local/Cellar/hadoop/1.2.1/libexec/>/mnt/data/nn 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:304)
        at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)
2013-11-01 13:38:59806 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLog:dfs.namenode.edits.toleration.length=0
2013-11-01 13:38:59806 INFO org.apache.hadoop.hdfs.server.namenode.namenode:缓存文件名超过10次
2013-11-01 13:38:59808 INFO org.apache.hadoop.hdfs.server.common.Storage:存储目录/usr/local/ceral/hadoop/1.2.1/libexec/>/mnt/data/nn不存在
2013-11-01 13:38:59809错误org.apache.hadoop.hdfs.server.namenode.FSNamesystem:FSNamesystem初始化失败。
org.apache.hadoop.hdfs.server.common.unconsistentstateException:目录/usr/local/cill/hadoop/1.2.1/libexec/>/mnt/data/nn处于不一致状态:存储目录不存在或不可访问。
位于org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:304)
位于org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
位于org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
位于org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:395)
位于org.apache.hadoop.hdfs.server.namenode.namenode.initialize(namenode.java:299)
位于org.apache.hadoop.hdfs.server.namenode.namenode.(namenode.java:569)
位于org.apache.hadoop.hdfs.server.namenode.namenode.createNameNode(namenode.java:1479)
位于org.apache.hadoop.hdfs.server.namenode.namenode.main(namenode.java:1488)

需要注意的两件事可能会导致此问题:

  • NameNode从名为hdfs-site.xml的文件(来自$HADOOP_CONF dir)读取其配置,而不是您在问题中提到的hive-site.xml(我猜您已经将其从hdfs-site.xml复制到此文件中)
  • 检查hdfs-site.xml中的配置-如果已将配置复制到,则在所需目录之前似乎有一个前导>:

    • /mnt/data/dfs
      需要注意的两件事可能会导致此问题:

    • NameNode从名为hdfs-site.xml的文件(来自$HADOOP_CONF dir)读取其配置,而不是您在问题中提到的hive-site.xml(我猜您已经将其从hdfs-site.xml复制到此文件中)
    • 检查hdfs-site.xml中的配置-如果已将配置复制到,则在所需目录之前似乎有一个前导>:

      • /mnt/data/dfs
        它是hdfs-site.xml而不是hive-site.xml,但是您的#2非常合适。好眼睛!它是hdfs-site.xml而不是hive-site.xml,但您的#2非常合适。好眼睛!
        2013-11-01 13:38:59,806 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
        2013-11-01 13:38:59,806 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: Caching file names occuring more than 10 times
        2013-11-01 13:38:59,808 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /usr/local/Cellar/hadoop/1.2.1/libexec/>/mnt/data/nn does not exist
        2013-11-01 13:38:59,809 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
        org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /usr/local/Cellar/hadoop/1.2.1/libexec/>/mnt/data/nn 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:304)
                at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
                at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
                at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
                at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
                at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
                at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
                at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)