自己搭建的集群,启动hadoop时slave节点的datanode没有启起来怎么办?

自己搭建的集群,启动hadoop 集群是,发现slave节点的datanode没有启动,查了资料发现是因为我在启动集群前,执行了这个命令:

hadoop namenode -format

这个指令会重新格式化namenode的信息,这样可能会导致master节点的VERSION信息跟datanode的信息对不上,导致指令无法同步。

查看VERION信息:

master 的 namenode 信息:
> cd /usr/local/src/hadoop-2.6.1/dfs/name/current
> cat VERSION
#Tue Aug 18 01:43:38 EDT 2020
namespaceID=1008709700
clusterID=CID-c3345186-922b-4010-bb38-cdc135bc1afe
cTime=0
storageType=NAME_NODE
blockpoolID=BP-266453957-192.168.56.10-1597729418207
layoutVersion=-60 slave 的 datanode信息
> cd /usr/local/src/hadoop-2.6.1/dfs/data/current
> cat VERSION
#Sat Aug 24 04:47:43 EDT 2019
storageID=DS-40ea875f-c037-49d3-b6e9-da8e9ff1d4eb
clusterID=CID-adbba37c-a4d3-4b60-8d1b-3ac22ee863df
cTime=0
datanodeUuid=d7f1a2f9-4604-4bf1-a1c7-90d553fb62b8
storageType=DATA_NODE
layoutVersion=-56

可以看到,namenode 和 datanode 的 clusterID 不一样,可以认为两者所在的集群是一样的。

这时有一个解决办法,在我这个场景下测试过有效:

第一步:停止集群:
> ./hadoop-2.6.1/sbin/stop-all.sh 第二步:删除logs文件夹和tmp文件夹
> rm -rf /hadoop-2.6.1/logs
> rm -rf /hadoop-2.6.1/tmp 第三步:查看VERSION文件是否存在,如果存在的话,把它删除:
> cd /hadoop-2.6.1/dfs/name/current
> ls -l
如果有VERSION文件,直接删除:
> rm -f VERSION 第四步:所有slave节点删除VERSION文件
> cd /usr/local/src/hadoop-2.6.1/dfs/data/current
> rm -f VERSION 第五步:格式化namenode
> namenode -format
这一步如果不执行的话,直接启动集群会导致master节点没有namenode 第六步:启动集群
> ./hadoop-2.6.1/sbin/start-all.sh 第七步:查看是否各个进程都启起来了:
master:
> jps
16595 Jps
16216 RunJar
15595 NameNode
15917 ResourceManager slave :
> jps
8369 NodeManager
8492 Jps
8271 DataNode 第8步,查看master和slave节点的VERSION
master:
> cat VERSION
#Tue Aug 18 01:59:54 EDT 2020
namespaceID=2000705856
clusterID=CID-5e8393c4-8eec-4f49-8be2-5935c1e215d7
cTime=0
storageType=NAME_NODE
blockpoolID=BP-1566447260-192.168.56.10-1597730394165
layoutVersion=-60 > cat VERSION
#Tue Aug 18 02:01:23 EDT 2020
storageID=DS-d47a197e-c210-4dac-bc78-dfd1c4338bb2
clusterID=CID-5e8393c4-8eec-4f49-8be2-5935c1e215d7
cTime=0
datanodeUuid=1c8cea38-f6ad-415b-bf53-8e47bd7bacf8
storageType=DATA_NODE
layoutVersion=-56

这样就可以了

上一篇:实现简单的手写涂鸦板(demo源码)


下一篇:Android应用开发实例篇(1)-----简易涂鸦板