2014-12-03 44 views
10

我嘗試了關於此主題的所有在計算器上提供的不同解決方案,但沒有幫助 與特定日誌和細節hadoop/hdfs/name處於不一致的狀態:存儲目錄(hadoop/hdfs/data /)不存在或無法訪問

任何幫助表示讚賞

我有一個主節點,並在我的Hadoop集羣5個從屬節點又要求。 Ubuntu的用戶和Ubuntu組是~/Hadoop文件夾的所有者 無論是~/hadoop/hdfs/data & ~/hadoop/hdfs/name文件夾中存在

和權限都被設置爲755

文件夾成功格式化名稱節點啓動腳本start-all.sh

腳本無法啓動「NAMENODE」

這些在主節點上運行

[email protected]:~/hadoop/bin$ jps 

7067 TaskTracker 
6914 JobTracker 
7237 Jps 
6834 SecondaryNameNode 
6682 DataNode 

[email protected]:~/hadoop/bin$ jps 

31438 TaskTracker 
31581 Jps 
31307 DataNode 

下面是來自名稱節點日誌文件的日誌。

.......... 
.......... 
......... 

014-12-03 12:25:45,460 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source jvm registered. 
2014-12-03 12:25:45,461 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source NameNode registered. 
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: Computing capacity for map BlocksMap 
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: VM type  = 64-bit 
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: 2.0% max memory = 1013645312 
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: capacity  = 2^21 = 2097152 entries 
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: recommended=2097152, actual=2097152 
2014-12-03 12:25:45,588 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: fsOwner=ubuntu 
2014-12-03 12:25:45,588 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: supergroup=supergroup 
2014-12-03 12:25:45,588 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isPermissionEnabled=true 
2014-12-03 12:25:45,622 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: dfs.block.invalidate.limit=100 
2014-12-03 12:25:45,623 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s) 
2014-12-03 12:25:45,716 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Registered FSNamesystemStateMBean and NameNodeMXBean 
2014-12-03 12:25:45,777 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0 
2014-12-03 12:25:45,777 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: Caching file names occuring more than 10 times 
2014-12-03 12:25:45,785 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /home/ubuntu/hadoop/file:/home/ubuntu/hadoop/hdfs/name does not exist 
2014-12-03 12:25:45,787 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed. 
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /home/ubuntu/hadoop/file:/home/ubuntu/hadoop/hdfs/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: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) 
2014-12-03 12:25:45,801 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /home/ubuntu/hadoop/file:/home/ubuntu/hadoop/hdfs/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: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) 

回答

8

刪除了 「文件:」 從HDFS-site.xml文件

[WRONG HDFS-SITE.XML]

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>file:/home/hduser/mydata/hdfs/namenode</value> 
    </property> 
    <property> 
    <name>dfs.datanode.data.dir</name> 
    <value>file:/home/hduser/mydata/hdfs/datanode</value> 
    </property> 

[正確HDFS- SITE.XML]

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/home/hduser/mydata/hdfs/namenode</value> 
    </property> 


    <property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/home/hduser/mydata/hdfs/datanode</value> 
    </property> 

感謝Erik的幫助。

+2

我使用了過去2年以上的hdfs-site.xml,它對我來說工作正常。 – 2014-12-04 04:57:58

+0

感謝您的回答庫馬爾。這很有幫助。我從你的答案中刪除了「file:」,並刪除了錯誤。 – Tariq 2014-12-04 09:47:48

+1

當不在路徑中使用'file:'時,'hdfs namenode -format'抱怨路徑不正確。 – mahdix 2016-02-16 16:30:49

4

運行在終端

$ cd ~ 
$ mkdir -p mydata/hdfs/namenode 
$ mkdir -p mydata/hdfs/datanode 

給予許可這些命令都目錄755

然後,

添加此屬性中的conf/HDFS-site.xml中

<property> 
 <name>dfs.namenode.name.dir</name> 
 <value>file:/home/hduser/mydata/hdfs/namenode</value> 
</property> 


<property> 
 <name>dfs.datanode.data.dir</name> 
 <value>file:/home/hduser/mydata/hdfs/datanode</value> 
</property> 

如果不行的話

stop-all.sh 
start-all.sh 
+0

感謝您的回覆。在日誌中:org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:Directory/home/ubuntu/hadoop/file:/ home/ubuntu/hadoop/hdfs/name處於不一致狀態:存儲目錄不存在或不可訪問;我不認爲/ home/ubuntu/hadoop/file:/ home/ubuntu/hadoop/hdfs/name是正確的。它只應該是file:/ home/ubuntu/hadoop/hdfs/name。你有什麼想法從附加的位附加? – Tariq 2014-12-03 13:50:31

+0

嘗試更新的答案 – 2014-12-03 14:01:31

+0

更改了XML標籤。仍然是同樣的問題....它尋找/ home/ubuntu/hadoop/hadoop-data/dfs /名稱文件夾,而我的名字文件夾在/ home/ubuntu/hadoop/hdfs/name中。如何改變這個配置 – Tariq 2014-12-03 14:16:35

6

按照下面的步驟,

1.Stop所有服務

2.Format您的NameNode

3.刪除你的數據節點目錄

4。啓動所有服務

+0

謝謝,我今天遇到了同樣的問題。這固定了一切。 – Adama 2015-08-04 16:40:52

+2

數據節點目錄在哪裏? – blong 2015-10-27 21:18:26

2

1)名稱節點目錄,你應該是業主身份,並搭配chmod 750適當
2)停止所有服務
3)通過Hadoop的NameNode -format格式化namenode的
4)將它添加到HDFS現場.XML

<property> 
    <name>dfs.data.dir</name> 
    <value>path/to/hadooptmpfolder/dfs/name/data</value> 
    <final>true</final> 
    </property> 
    <property> 
    <name>dfs.name.dir</name> 
    <value>path/to/hadooptmpfolder/dfs/name</value> 
    <final>true</final> 
</property> 

5)運行hadoop namenode -format 在添加export PATH=$PATH:/usr/local/hadoop/bin/〜/ .bashrc中 無論Hadoop是解壓補充一點,在路徑

-1

有類似問題,我格式化namenode,然後啓動它

Hadoop namenode -format 
hadoop-daemon.sh start namenode 
相關問題