如果我們想讓一臺機器即是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 2018namespaceID=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
之後就可以使用了