不小心把集群其中一个节点安装路径覆盖了,不要慌,不用重新装集群,之前配置好的集群节点之间可以相互通信,所以把缺少的文件从另外一个节点传过来即可。
比如你有102 103 104 3个节点,你把102搞坏了,此时可以从103传文件,看你缺少了哪些,比如我把hadoop文件以及jdk文件弄没了;
使用xrsync命令
103:xrsync hadoop安装路径
xsync /opt/module/hadoop 这样103会把路径传到102和104上
或者指定 rsync /opt/module/hadoop root@hadoop12:/opt/module
把文件传完之外,启动集群,不会报错,但是使用jps命令会提示
2296 – process information unavailable
20024 – process information unavailable
20026 – process information unavailable
这种情况是因为你集群 安装路径被覆盖,集群没有正常关闭。
使用 ll /tmp/|grep hsperfdata 查询hsperfdata相关文件
进入/tmp目录 cd /tmp
可以看到有很多以hsperfdata_{用户名}这样的目录,比如:hsperfdata_hbase,hsperfdata_kafka,hsperfdata_root这样的目录,是因为进程虽然在内存中关闭了,但是Linux还会在/tmp下寻找这些临时文件,而此时临时文件并没有没正常删除,这时候直接执行
rm -rf hsperfdata_* 删除这些目录,然后再次执行 jps 查看,以上那些进程就不存在了,
rm -rf /tmp/hsperfdata* 使用该命令删除即可。
此时配置成功了,但是现在还有一个步骤,现在相当于我们刚安装好集群,并且是第一次启动,所以需要对Namenode格式化;
如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致
NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode
的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。
hdfs namenode -format
到这里集群就可以正常工作了,启动集群即可。