java.io.IOException: All specified directories have failed to load.


java.io.IOException: All specified directories have failed to load. at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:552) at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1705) at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1665) at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:390) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:280) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816) at java.lang.Thread.run(Thread.java:748)

  產生原因:

    時隔半年,重新安裝一次Hadoop,出現了上述的問題,原因是我在啟動FDFS時沒有啟動namenode,然后就重新進行了格式化,結果namenode啟動成功了,datanode卻無法啟動了,原因時在進行多次格式化的之后,namenode和datanode的clusterID不同了。

 

  解決辦法:找到namenode和datanode的VERSION文件,文件路徑在hdfs-site.xml中配置,我的是如下路徑,每個人的路徑根據自己的配置有所不同

  

<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///export/servers/hadoop-3.1.1/datas/namenode/namenodedatas</value>
    </property>
   
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///export/servers/hadoop-3.1.1/datas/datanode/datanodeDatas</value>
    </property>

  把datanode的clusterID改為namenode的clusterID,記住所有機器的datanode的clusterID都要改,然后重新啟動hadoop即可。

  做大數據一定要養成看日志的習慣,大數據出錯的地方實在太多了,而且不會在控制台顯示錯誤,這個時候就要去日志里面找錯誤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM