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

Posted Talk is cheap.show me the code

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次往集群添加机器,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 [email protected]

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

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

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

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

scp -r /home/hadoop/app/hadoop [email protected]:/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来安装

以上是关于记一次往集群添加机器,liveNodes缺少机器的情况的主要内容,如果未能解决你的问题,请参考以下文章

记一次机器socket连接数持续增长的问题

记一次ElasticSearch重启之后shard未分配问题的解决

机器学习:记一次k一近邻算法的学习与Kaggle实战

记一次Kubernetes/Docker网络排障

记一次RPC耗时调优

记一次机器机器被黑经历——一直发送SSH请求,kswapd0tsm内存占用过高