记一次往集群添加机器,liveNodes缺少机器的情况

1、背景

公司线下环境,原本有三台虚拟机组成的集群(cdh5.3.6),由于硬件配置比较低,申请了新的三台机器,8核8G内存,在上面部署了cdh5.11.1,较新的cdh集群。

由于远来的三台还在使用,所以打算把新的三台机器搭建好后,再把原来三台机器合并进来。

2、过程

(1)让hadoop001,hadoop002,hadoop003三台机器和hadoop004,hadoop005,hadoop006三台机器互相认识认识,ssh互通

ssh-copy-id -i ~/.ssh/id_rsa.put haoop@hadoop001

在所有的机器都运行这个命令即可

(2)修改所有机器的/etc/hosts,加上六台机器的ip和hosts映射

(3)修改hadoop配置文件,slaves里面加上其他机器的域名

(4)把hadoop的文件发送到hadoop001-hadoop003机器上

scp -r /home/hadoop/app/hadoop hadoop@hadoop001:/home/hadoop/app

(5)在namenode节点上先停止集群,再重启集群

3、问题来了

重启好了之后,打开hadoop004:50070,发现只有三个livenodes节点,并且刷新的时候,一会儿是hadoop004,hadoop005,hadoop006,一会儿是hadoop001,hadoop005,hadoop006,

就一直在变化。百思不得姐。

4、解决

最后发现,我把hadoop的数据文件放在hadoop安装目录下的tmp文件夹下,发送hadoop包的时候,连同数据一起发送了,导致namenode误认为这是一台机器。

然后把hadoop001-hadoop003上的tmp文件夹下都清空了,再重启hdfs即可。

5、总结

(1)这里新增节点,我重启了整个集群的hdfs,当然这是不妥的,因为如果是生产环境,会影响到任务运行,使任务失败。

当然如何不重启集群,就新增机器,还不知道如何解决。

(2)当然线上一般都是用clouderaManager来安装集群的,可以一键发现主机,一键添加机器

(3)百度的时候,发现有人说,格式化hdfs,这是非常不可取的,因为安装大数据平台其他组件的时候,往hdfs上写了很多东西,不能随便格式化的

(4)线下没有用clouderamanager装平台,是因为内存实在是太小了,8G的内存,刚装完,就用掉了7个G,导致集群报警。最终还是选择了手工配置组件的方式,用cdh来安装

原文地址:https://www.cnblogs.com/nicekk/p/9054023.html