hadoop的最基本的5個進程中datanode無法正常啟動, 進程在開啟一段時間後莫名其妙掛掉:
原因分析:
datanode為hadoop集群實際資料的存儲, 它的存活狀況直接決定了資料能否讀寫, 如果出現了上述問題, 首先要查看一下集群內的所有節點的情況, 看是不是每個節點都是只少了一個datanode, 如果同時少了namenode和datanode, 這種問題需要檢查設定檔, 一般都是配置資訊由問題, 或者網路不通等問題造成的。 如果發現所有節點都是只少了一個datanode, 這種問題一般都是由於重複的格式化, 導致namenode和datanode的ID不一致。
解決辦法:
針對解決這類問題有兩種方法:
1、 既然是有於ID不一致, 那麼找到兩個ID的位置, 把namenode和datanode的ID改為一樣的。 這個檔的位置是根據core-site.xml的配置決定的, 我的配置如下目錄在:
所以我需要修改如下位址的檔
/usr/hadoop/hadoop-2.6.0/tmp/dfs/data/current-------datanode 目錄下面的檔VERSION,
/usr/hadoop/hadoop-2.6.0/tmp/dfs/name/current------namenode目錄下麵也有VERSION,
兩個檔中都有一個clusterID的欄位, 把datanode的ID改成namenode的ID,
下圖為正常之後的集群服務項
2、刪除配置目錄的tmp目錄:
Shell代碼
rm -rf /usr/hadoop/hadoop-2.6.0/tmp/dfs/data
rm -rf /usr/hadoop/hadoop-2.6.0/tmp/dfs/name/
然後重新格式化, 使用此方式會導致集群的資料丟失, 不建議生產環境使用
hadoop datanode -format
下圖為正常之後的集群服務項