Hadoop集羣中DataNode啓動不了問題處理

    在啓動Hadoop集羣時,每每會出現這樣或那樣的問題,好比節點中DataNode進程啓動不了,非常讓人頭疼,下面說下具體的解決辦法(複雜版),簡單版見最後node

    (1)中止關於Hadoop的全部進程oop

    (2)刪除每一個節點Hadoop目錄下 logs 和 tmp 文件夾,命令以下:ui

sudo rm -rf logs
sudo rm -rf tmp

    (3)手動從新建立每一個節點下 logs 和 tmp 文件夾,命令以下:spa

mkdir logs
mkdir tmp

    (4)cd到Hadoop/bin目錄下,從新格式化:scala

hdfs namenode -format

    沒有問題後,從新啓動hadoop集羣,DataNode進程成功啓動。code

    具體的緣由仍是:orm

    datanode的clusterID 和 namenode的clusterID 不匹配進程

    成功啓動DataNode進程後,咱們能夠查看各節點tmp目錄下文件。hadoop

    做爲namenode節點,其文件目錄爲:hadoop/tmp/dfs/name/current;io

    做爲datanode節點,其文件目錄爲:hadoop/tmp/dfs/data/current;

    在目錄下咱們使用 cat 命令查看 VERSION 文件,分別爲:

[hadoop@slave01 current]$ cat VERSION 
#Mon Jun 25 10:15:16 CST 2018
namespaceID=2112363039
clusterID=CID-5a83590f-0667-49f7-a7ee-c27165216e28
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1317085386-127.0.0.1-1529892916541
layoutVersion=-63
[hadoop@slave02 current]$ cat VERSION 
#Mon Jun 25 10:16:52 CST 2018
storageID=DS-554910b7-5a75-4a41-a7c2-4f9d137dfd9d
clusterID=CID-5a83590f-0667-49f7-a7ee-c27165216e28
cTime=0
datanodeUuid=3cdb4500-3548-471e-86bc-7daea441fb26
storageType=DATA_NODE
layoutVersion=-56

    能夠看出:namenode和datanode的clusterID是一致的。

    因此,從新格式化的操做不要隨便使用,這可能致使兩個clusterID不一致,引發進程啓動不了的問題,網上也有說不用從新格式化和刪除目錄,而是經過將namenode下的clusterID複製到datanode下的clusterID,覆蓋掉原來的,讓兩個保持一致,這種方式沒試過,不知道好使很差使,你們能夠嘗試下(該方式已被證明,親測可用哦)。

相關文章
相關標籤/搜索