hadoop中同臺機器datanode和namenode互相沖突解決

如果我們想讓一臺機器即是datanode也是namenode,一般就是執行一下兩條:

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode

但是我們執行完畢後我們多次執行jps命令,會發現datanode持續能有10秒左右,然後就消失了。

這個原因是因爲我們namenode格式化了好幾次,clusterID號碼出現了變化。

第一種解決的方法是:

進入hadoop安裝目錄(如/root/hadoop-2.8.1)下面的/etc/hadoop下,如:

cd /root/hadoop-2.8.1/etc/hadoop
之後
 cat hdfs-site.xml

看看我們的存儲系統在哪個文件夾下,如:

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/dfs/name</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/dfs/data</value>
</property>

</configuration>

這說明我們的文件夾是:/root/dfs/name、/root/dfs/data 這兩個

然後我們進入name文件夾裏面的current中

cd /root/dfs/name/current

查看version文件

cat VERSION
#Sun May 06 17:29:02 CST 2018
namespaceID=1716704703
clusterID=CID-d2aba48a-2c35-4c0b-8f2f-1147e741e262
cTime=1525562408320
storageType=NAME_NODE
blockpoolID=BP-837005319-192.168.2.11-1525562408320

layoutVersion=-63

複製紅色的這條,然後進入data文件夾裏面的current中,並查看version文件

cd /root/dfs/data/current
vi VERSION

把version裏面的clusterID變成剛纔複製的那條。

然後重新執行:

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
或者

start-dfs.sh 
之後就可以使用了


發佈了51 篇原創文章 · 獲贊 221 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章