如果我们想让一台机器即是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之后就可以使用了