Bug | Hadoop3.1.3 啟動集群后沒有NameNode節點 出現 storage directory does not exist or is not accessible


Bug

start-all.sh 啟動hadoop集群后發現沒有名稱節點 NameNode

分析

這種情況通常都是檢查hadoop運行的日志,在那之前需要先排除最容易忽視的點。

1. 檢查 workers配置文件

使用jps 命令先查看其他的節點進程的情況,我這里發現其他節點只有Jps一個進程

重新配置 hadoop目錄下的workers vim ./etc/hadoop/workers,將所有的工作節點主機名放入,比如:

hadoop101
hadoop102
hadoop103

先在其中一個節點,比如 hadoop101 節點修改 ,之后在通過scp命令傳送到其他節點

scp /usr/local/hadoop/etc/hadoop/workers root@hadoop102:/usr/local/hadoop/etc/hadoop/
scp /usr/local/hadoop/etc/hadoop/workers root@hadoop103:/usr/local/hadoop/etc/hadoop/

image

接着在主節點hadoop101 重新 初始化名稱節點 $HADOOP_HOME/bin/hdfs namenode -format

重新開啟集群 $HADOOP_HOME/sbin/start-all.sh

依舊報錯
image

jps后依然沒有NameNode節點
image

若暫時沒有解決NameNode節點問題,記得先關閉集群.

2. 解決啟動集群時提示mkdir權限不夠

此時應當是hadoop101對其他節點的hadoop目錄權限不足,這時需要在其他的節點修改hadoop的權限
sudo chown -R uni:uni ./hadoop

啟動集群后
image

成功解決 權限不夠的問題 但是依然沒有 NameNode

3. 查詢hadoop啟動NameNode運行日志 解決 Directory /usr/local/hadoop/tmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible

cd ./logs

進入日志目錄,先 ls 查看一下有關namenode的日志文件

比如筆者這里是 cat hadoop-uni-namenode-hadoop101.log

查到的異常如下

Directory /usr/local/hadoop/tmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

導致原因:很有可能是多次初始化名稱節點,導致名稱節點的映射發生變化

解決措施: 刪除 hadoop目錄下的 tmp文件夾后重新啟動集群

如果還是沒有用,建議檢查與hdfs相關的配置文件core-site.xmlhdfs-site.xml,最后我發現是自己的 hdfs-site配置文件沒配置... 有點難受

ps : 修改完一個節點的配置文件后,記得使用scp命令傳到其他節點喲


免責聲明!

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



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