2

次のように 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>

ただし、namenode は次のディレクトリにアクセスしようとしています:

/usr/local/Cellar/hadoop/1.2.1/libexec/>/mnt/data/nn

これはたまたま次の値になります。

$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)
4

1 に答える 1

4

この問題を引き起こしている可能性があることに注意してください。

  1. NameNode は、質問に記載されているように hive-site.xml ではなく、hdfs-site.xml ($HADOOP_CONF dir から) という名前のファイルから構成を読み取ります (これを hdfs-site.xml からコピーしたと思います)。このファイルに)
  2. hdfs-site.xml の構成を確認してください。構成をコピーした場合は、目的のディレクトリの前に > が付いているように見えます。
    • <value>>/mnt/data/dfs</value> << この値から変更
    • <value>/mnt/data/dfs</value> << この値に修正
于 2013-11-01T21:29:23.880 に答える