启动hadoop集群,namenode正常启动,而datanode没有启动的原因及其解决办法
程序员文章站
2022-07-14 17:26:18
...
集群基本配置
1、slaves配置
假设集群其他配置都配好了,这里提一个slaves配置。
cd /opt/module/hadoop-2.7.2/etc/hadoop
切换目录,找到slaves配置文件,打开
vim slaves
把机器配上
192.168.136.102
192.168.136.103
192.168.136.104
2、启动集群
这里提一点:
如果集群是第一次启动,需要格式化NameNode
切换到hadoop相应的目录下,敲以下命令
bin/hdfs namenode -format
datanode未启动的原因
启动集群,namenode正常启动而datanode却没有启动,jps命令查看没有datanode的进程。
原因是:当我们使用hdfs namenode -format格式化namenode时,会在namenode数据文件夹中保存一个current/VERSION文件,记录clusterID,而datanode中保存的current/VERSION文件中的clustreID的值是第一次格式化保存的clusterID,刚好有进行了一次格式化,在namenode的current/VERSION文件保存新的clusterID这样datanode和namenode之间的ID不一致。
简单总结:就是namenode的集群ID和datanode的集群ID不一致,导致只启动了namenode而未启动datanode
解决办法
1、切换到存放namenode和datanode数据文件的目录
cd data/tmp/dfs/
2、编辑文件
2.1 查看NameNode的集群ID
vim name/current/VERSION
这个是namenode的集群ID,把它复制下来,等会替换datanode的集群ID
2.2 打开DataNode的集群ID,用NameNode的集群ID去替换它
vim data/current/VERSION
注意
其他从节点机器也这样操作,全部替换成一样的。
上一篇: 九章算法 | Amazon 面试题:买卖股票的最佳时机
下一篇: 4、Java运算符