配置了三台datanode,启动hdfs集群后只有一台启动成功…
本人是大数据初学者,集群规划为hadoop01(namenode、datanode),hadoop02(datanode),hadoop03(datanode),之前集群配置都没问题,hive,spark都ok;但过了段时间后start-dfs.sh启动hdfs集群时只能启动一台datanode,而且关掉再启动时启动成功的那台datanode不确定,一会儿是hadoop01,一会儿是hadoop02,一会儿是hadoop03。想想没什么误操作,也没什么骚操作,但就是只能启动一台datanode;之后检查配置文件也没问题,然后查看datanode的VERSION文件时,终于知道哪里出错了。
原来是在学习hbase时,hadoop01配置好hbase,使用xsync脚本分发给其他两台节点hadoop02和hadoop03时,传的参数是/opt/module/,导致同在module目录下的hadoop目录也被分发了。。。三台机器的module目录下的内容一毛一样,尤其是hadoop中datanode的VERSION文件。。。。。。。。
在/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current的VERSION文件里有datanode的版本等信息,它们只有集群ID是一样的,其它不一样;因为是学习环境,hdfs没啥数据,直接把hadoop家目录里的logs和data目录删掉,格式化namenode,重新启动集群就ok了。
#####正常启动的集群中各个datanodeVERSION文件内容
#####hadoop01节点的datanode的VERSION文件内容
#Sun Nov 22 21:27:38 CST 2020
storageID=DS-dc6e37f1-531d-44a4-bcca-df79f6c91d4b
clusterID=CID-93ce2e8d-2963-4aff-b296-2ee2fb325c9f
cTime=0
datanodeUuid=b9e81c7e-28b3-47c0-87f5-5000cd978c11
storageType=DATA_NODE
layoutVersion=-56
#####hadoop02节点的datanode的VERSION文件内容
#Sun Nov 22 21:27:39 CST 2020
storageID=DS-dae5286a-5d6c-4d3f-b5ab-abb1f0eb7860
clusterID=CID-93ce2e8d-2963-4aff-b296-2ee2fb325c9f
cTime=0
datanodeUuid=02cc2c95-d0a5-4898-9be9-f5094aa29aa8
storageType=DATA_NODE
layoutVersion=-56
#####hadoop03节点的datanode的VERSION文件内容
#Sun Nov 22 21:27:39 CST 2020
storageID=DS-2973c073-e73d-4964-99cb-45e04a186cd0
clusterID=CID-93ce2e8d-2963-4aff-b296-2ee2fb325c9f
cTime=0
datanodeUuid=95839a2f-c21b-4004-80ff-6a9048b33e1d
storageType=DATA_NODE
layoutVersion=-56
#集群里datanode的clusterID是相同的,storageID和datanodeUuid是不一样的
我使用rsync分发文件导致把hadoop01的datanodeVERSION文件也分发给了hadoop02和hadoop03,它们三个的VERSION文件一模一样,当然只能启动一个datanode而且还不一定是启动的哪台。。。。。。