记一次往集群添加机器,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缺少机器的情况的主要内容,如果未能解决你的问题,请参考以下文章