Hadoop問題解決-DataNode無法啓動問題

1.環境的的基本介紹

  • Hadoop版本: hadoop-2.7.2
  • 系統版本:Centos

2.問題描述

按照正常的流程,先格式化文件系統(hadoop namenode -format),然後輸入命令 sbin/start-dfs.sh ,會出現DataNode無法啓動 ,而NameNode正常啓動,如下圖所示:

圖1.問題描述

3.問題分析與解決

要分析問題,首先要從日誌文件開始分析,輸入以下命令查看日誌文件:

cd logs/
cat hadoop-root-datanode-hadoop102.log #注意查看.log的文件,這是相關日誌,而不是看.out文件 
圖2.日誌文件分析

 根據標註部分可以看出,Datanode的clusterID 和 Namenode的clusterID 不匹配,所以報錯了,導致DataNode啓動後再次掛掉。要解決該問題,先執行下面指令,然後重新格式化即刻生效!

rm -rf data/tmp/dfs/data/current/VERSION #集羣中每個datanode節點的/dfs/data/current中的VERSION刪除

問題分析:當我們執行文件系統格式化時,會在namenode數據文件夾,即配置文件中dfs.name.dir在本地系統的路徑,中保存一個current/VERSION文件,記錄namespaceID,標誌了所有格式化的namenode版本。如果我們頻繁的格式化namenode,那麼datanode中保存(即dfs.data.dir在本地系統的路徑)的current/VERSION文件只是你地第一次格式化時保存的namenode的ID,因此就會造成namenode和datanode之間的ID不一致。

溫馨提示:格式化要慎重!!!!!

4.NameNode格式化需要注意的幾個問題

  • 重新格式化意味着集羣的數據會被全部刪除,格式化前需考慮數據備份或轉移問題
  • 先刪除主節點(即namenode節點),Hadoop的臨時存儲目錄tmp、namenode存儲永久性元數據目錄dfs/name、Hadoop系統日誌文件目錄log 中的內容 (注意是刪除目錄下的內容不是目錄)
  • 刪除所有數據節點(即datanode節點) ,Hadoop的臨時存儲目錄tmp、namenode存儲永久性元數據目錄dfs/name、Hadoop系統日誌文件目錄log 中的內容
  • 格式化一個新的分佈式文件系統

5.寫在最後

本文是題主遇到該問題時,在網上收集了各種資料後,解決了該問題,覺得收穫頗多。故再次將其展示與博客,希望能和大家共勉,一起去貢獻出更精彩的博客!


題主只是一個入門的小學生,希望大家多多指教!如果該帖子確實能解決您的問題,望多多留言,謝謝!


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章