问题描述
1.使用 ./sbin/start-all.sh
启动Hadoop集群,过程中DataNode没有启动
2.使用jps
查看进程时,没有DataNode节点
在此需注意Hadoop集群是如何搭建的
要知道Hadoop搭建过程中,namenode,datanode等位置和作用
伪分布式搭建: 节点既作为namenode又作为datanode
本实验是使用(伪分布式)
1.Master节点
namenode ,其他节点在Master
节点中
2.Slave节点
DataNode在Slave
节点中
可用方案
网上可用方案,及其原因分析是
原因1
方案1
多次格式化nameNode
节点 (hadoop namenode -format),是NameNode和DataNode的版本号不一致所致
可参考这个教程
具体是 nameNode和datanode应该是一组的,每次启动
如何知道是否是一组呢?
参考
需要干两件事
①.知道datanode的logs(日志文件)
②.知道VERSION文件
具体原因是,配置文件中的datanode版本和logs文件中的datanode版本不同步
具体操作
1.获取日志文件logs的clusterID
一,进入文件所在路径
一般是 /usr/local/hadoop/logs/
hadoop@Slave:/usr/local/hadoop/logs$ ls
hadoop-hadoop-datanode-Slave.log userlogs
hadoop-hadoop-datanode-Slave.out yarn-hadoop-nodemanager-Slave.log
hadoop-hadoop-datanode-Slave.out.1 yarn-hadoop-nodemanager-Slave.out
hadoop-hadoop-datanode-Slave.out.2 yarn-hadoop-nodemanager-Slave.out.1
hadoop-hadoop-datanode-Slave.out.3 yarn-hadoop-nodemanager-Slave.out.2
hadoop-hadoop-datanode-Slave.out.4 yarn-hadoop-nodemanager-Slave.out.3
hadoop-hadoop-datanode-Slave.out.5 yarn-hadoop-nodemanager-Slave.out.4
SecurityAuth-hadoop.audit
二,查看clusterID
vim hadoop-hadoop-datanode-Slave.log
可以输入 "/关键字"快速搜索,如
/clusterID
复制clusterID
2.修改tem中的clusterID
因为是伪分布式,所以datenode在
Slave
节点上
找到VERSION
文件,查看ClusterID
一,找到配置文件core-site.xml
1.进入 /usr/local/hadoop/etc/hadoop/
,查看文件
2.查看core-site.xml
二,进入tem目录
1.进入这个tmp
目录下
一般是/usr/loca/hadoop/tmp/dfs/data/current
目录下
hadoop@Slave:/usr/local/hadoop/tmp/dfs/data/current$ ls # 列出文件
BP-156616753-192.168.43.151-1609764008167 VERSION
2.查看VERSION文件中的ClusterID
hadoop@Slave:/usr/local/hadoop/tmp/dfs/data/current$ cat VERSION # 查看文件
#Sun Jan 10 11:28:36 CST 2021
storageID