项目场景:
手机流量分析项目的Hadoop集群启动
问题描述
`
今天解决的问题是6个进程中缺少了DataNode。
---
# 原因分析:
是因为namenode进行了多次的格式化bin/hdfs namenode -format,导致namenode的clusterID和datanode的clusterID不同。dfs/data中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID 。这样,datanode和namenode之间的ID不一致。所以datanode进程“消失了”。
---
# 解决方案:
1. 先关闭进程 sbin/stop-all.sh
2. 在hadoop安装目录下打开本地文件local
3. 在hadoop目录下查看vi core-site.xml配置文件
4. 将/export/data/Hadoop-wfb-3.3.0在local目录下打开并查看,是否有dfs,并打开dfs.
5. 打开dfs目录并在其目录查询name和data目录.。
6. 在dfs目录下首先打开name,然后在name目录中打开current目录。我们会在current中看见VERSION。
7. 输入命令vi VERSION打开VERSION文件,复制VERSION文件中的clusterID
8. 复制完成之后点击esc,shift+:wq退出该文件,再次回到dfs目录。并在dfs目录下打开data,然后在data目录中打开current目录。在current中打开VERSION文件。
9. 将从name中VERSION文件中复制的clusterID,粘贴到data中VERSION文件中clusterID。要确保data/current/VERSION中的clusterID与name/current/VERSION中clusterID的值相等。
10. 粘贴完成之后点击esc,shift+:wq退出该文件。输入命令:cd /export/servers/wfb-hadoop/hadoop-3.3.0并切换到hadoop-3.3.0目录
11. 输入sbin/start-all.sh开启进程查看jps,可以看到DataNode进程已经出现