zookeeper动态添加/删除集群中实例(zookeeper 3.6)
一,用来作为demo操作的zookeeper集群中的实例:
机器名:zk1
server.1=172.18.1.1:2888:3888 机器名:zk2
server.2=172.18.1.2:2888:3888 机器名:zk3
server.3=172.18.1.3:2888:3888
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,在zookeeper集群中动态添加实例
1,我们的目标:添加两台实例:
机器名:zk4
server.4=172.18.1.4:2888:3888 机器名:zk5
server.5=172.18.1.5:2888:3888
2,在两台新机器上安装zookeeper,
使非集群相关的配置与之前的三台:zk1,zk2,zk3相一致
3,设置两个容器中zookeeper的cluster配置,使加入集群
修改zoo.cfg,集群的配置为:(新加的两台机器上相同)
[root@zk4 conf]# vi zoo.cfg
集群配置的内容为:
#cluster
server.1=172.18.1.1:2888:3888
server.2=172.18.1.2:2888:3888
server.3=172.18.1.3:2888:3888
server.4=172.18.1.4:2888:3888
server.5=172.18.1.5:2888:3888
配置myid
[root@zk4 conf]# cd /data/zookeeper/data
[root@zk4 data]# vi myid
说明:
myid要区分开,
172.18.1.4上面,把myid设置为4
172.18.1.5上面,把myid设置为5
必须与zoo.cfg中的配置序号4、5保持一致
配置完成后,分别重启两个zookeeper服务:
zk4
[root@zk4 data]# systemctl stop zookeeper
[root@zk4 data]# systemctl start zookeeper
zk5
[root@zk5 data]# systemctl stop zookeeper
[root@zk5 data]# systemctl start zookeeper
4,查看效果
zk4
[root@zk4 data]# echo srvr | nc 127.0.0.1 2181
Zookeeper version: 3.6.0--b4c89dc7f6083829e18fae6e446907ae0b1f22d7, built on 02/25/2020 14:38 GMT
Latency min/avg/max: 0/0.0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x100000000
Mode: follower
Node count: 5
mode是follower,证明已加入集群
zk5:
[root@zk5 data]# echo srvr | nc 127.0.0.1 2181
Zookeeper version: 3.6.0--b4c89dc7f6083829e18fae6e446907ae0b1f22d7, built on 02/25/2020 14:38 GMT
Latency min/avg/max: 0/0.0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x100000000
Mode: follower
Node count: 5
两个实例的mode都是follower
5,集群中原有的三台机器的处理:
zk1,zk2,zk3
以zk1为例:
修改集群的配置,使与新加入的机器zk4\zk5的配置一致:
[root@zk1 conf]# vi zoo.cfg
内容:
#cluster
server.1=172.18.1.1:2888:3888
server.2=172.18.1.2:2888:3888
server.3=172.18.1.3:2888:3888
server.4=172.18.1.4:2888:3888
server.5=172.18.1.5:2888:3888
重启服务:
[root@zk1 conf]# systemctl stop zookeeper
[root@zk1 conf]# systemctl start zookeeper
zk2/zk3上,依次进行相同的操作即可
说明:从leader实例上查询follower的数量:
[root@zk4 data]# echo mntr | nc 127.0.0.1 2181 | grep follower
zk_synced_followers 4
说明:有4个follower
这个数值是根据集群中的成员数量实时得到的,
如果有实例宕掉,此数量会改变
三,zookeeper集群中动态删除实例:
1,我们的目标:删除两台实例:
机器名:zk5
server.5=172.18.1.5:2888:3888 机器名:zk4
server.4=172.18.1.4:2888:3888
说明:这两台里面zk4是leader,zk5是follower
说明:如果不关闭zk5/zk4,直接修改zk1/zk2/zk3的配置后重启,会发生问题:
以zk1为例:重启后会因为集群中没有leader,而导致zk1无法访问.
2,操作步骤:
先关闭zk4和zk5
[root@zk4 conf]# systemctl stop zookeeper
[root@zk5 data]# systemctl stop zookeeper
说明:先关闭这两台,这样leader会自动从剩下的三台中选出,
可以避免因为没有leader导致集群无法访问的情况
再查看各个实例上的状态
zk1:follower
zk2:follower
zk3:leader
再给zk1,zk2,zk3修改配置重启
以zk1为例:
修改配置文件
[root@zk1 conf]# vi zoo.cfg
修改内容为:
#cluster
server.1=172.18.1.1:2888:3888
server.2=172.18.1.2:2888:3888
server.3=172.18.1.3:2888:3888
#server.4=172.18.1.4:2888:3888
#server.5=172.18.1.5:2888:3888
说明:注释掉了4和5
重启服务:
[root@zk1 conf]# systemctl stop zookeeper
[root@zk1 conf]# systemctl start zookeeper
查看状态:
[root@zk1 conf]# echo stat | nc 127.0.0.1 2181
Zookeeper version: 3.6.0--b4c89dc7f6083829e18fae6e446907ae0b1f22d7, built on 02/25/2020 14:38 GMT
Clients:
/127.0.0.1:53110[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0.0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x700000000
Mode: follower
Node count: 10
访问正常,mode还是follower
zk2/zk3上的操作与之相同
四,zookeeper cluster报错信息:
例:
[root@zk1 conf]# echo stat | nc 127.0.0.1 2181
This ZooKeeper instance is not currently serving requests
报错原因:集群里面没有选出来leader,
如果集群里的结点只剩下一台,或不足半数时,会给出这个错误提示
解决:
1,
检查各节点:如果有误关闭的或宕机的实例,重新启动,保证其正常工作
2,
检查防火墙,是否打开集群之间通信的2888/3888端口
如果这两个端口被关闭,打开它
五,查看zookeeper的版本
[root@zk1 ~]# echo stat|nc 127.0.0.1 2181
Zookeeper version: 3.6.0--b4c89dc7f6083829e18fae6e446907ae0b1f22d7, built on 02/25/2020 14:38 GMT
zookeeper动态添加/删除集群中实例(zookeeper 3.6)的更多相关文章
- 通过tarball形式安装HBASE Cluster(CDH5.0.2)——如何配置分布式集群中的zookeeper
集群安装总览参见这里 Zookeeper的配置 1,/etc/profile中加入zk的路径设置,见上面背景说明. 2,进入~/zk/conf目录,复制zoo_sample.cfg为zoo.cfg v ...
- 在Hadoop集群中添加机器和删除机器
本文转自:http://www.cnblogs.com/gpcuster/archive/2011/04/12/2013411.html 无论是在Hadoop集群中添加机器和删除机器,都无需停机,整个 ...
- 【2】基于zookeeper,quartz,rocketMQ实现集群化定时系统
<一>项目结构图 (1)ZK协调分配 ===>集群中的每一个定时服务器与zookeeper交互,由集群中的master节点进行任务划分,并将划分结果分配给集群中的各个服务器节点. = ...
- Hadoop学习笔记—13.分布式集群中节点的动态添加与下架
开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群.现在,我们来了解一下在一个Hadoop分布式集群中,如何动态(不关机且正在运行的情况下)地添加一个Hadoop节点与 ...
- hadoop集群中动态添加新的DataNode节点
集群中现有的计算能力不足,须要另外加入新的节点时,使用例如以下方法就能动态添加新的节点: 1.在新的节点上安装hadoop程序,一定要控制好版本号,能够从集群上其它机器cp一份改动也行 2.把name ...
- java 学习笔记(三)ZooKeeper集群搭建实例,以及集成dubbo时的配置 (转)
ZooKeeper集群搭建实例,以及集成dubbo时的配置 zookeeper是什么: Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式 ...
- 初始zookeeper与集群搭建实例
zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...
- 初识ZooKeeper与集群搭建实例
原文链接:http://www.linuxidc.com/Linux/2015-02/114230.htm zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Ch ...
- 用Javascript动态添加删除HTML元素实例 (转载)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- CSS -- 盒子模型之边框、内边距、外边距
一.使用border为盒子添加边框 盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细.样式和颜色(边框三个属性). 1.border-style(边框样式)常见样式有: dashed( ...
- Dubbo系列之 (七)链路层那些事(1)
辅助链接 Dubbo系列之 (一)SPI扩展 Dubbo系列之 (二)Registry注册中心-注册(1) Dubbo系列之 (三)Registry注册中心-注册(2) Dubbo系列之 (四)服务订 ...
- spring官网在线学习文档翻译
Core Technologies (核心技术) Version 5.0.8.RELEASE 版本5.0.8RELEASE This part of the reference documentati ...
- 【转】Locust性能-零基础入门系列(1)-wait_time属性用法
本篇文章,从局部出发,利用一个简单的测试,来说明场景模拟的wait_time属性的用法.wait_time为什么要单独拎出来讲,是因为它主要有两种模式,而初学者对这两种模式,容易混淆.1) wait_ ...
- ABP+WorkflowCore+jsplumb实现工作流
前言 ABP目前已经是很成熟的开发框架了,它提供了很多我们日常开发所必须的功能,并且很方便扩展,让我们能更专注于业务的开发.但是ABP官方并没有给我们实现工作流. 在.net core环境下的开源工作 ...
- 详细分析 Java 中启动线程的正确和错误方式
目录 启动线程的正确和错误方式 前文回顾 start 方法和 run 方法的比较 start 方法分析 start 方法的含义以及注意事项 start 方法源码分析 源码 源码中的流程 run 方法分 ...
- 万字长文 | 23 个问题 TCP 疑难杂症全解析
每个时代,都不会亏待会学习的人. 在进入今天主题之前我先抛几个问题,这篇文章一共提出 23 个问题. TCP 握手一定是三次?TCP 挥手一定是四次? 为什么要有快速重传,超时重传不够用?为什么要有 ...
- Centos-网络下载文件-wget
wget 指定URL从网络上下载某个文件,需要网络连接 相关选项 -nc 不覆盖同名文件 -q 安静下载,无输出 -v 显示下载详情 -O 指定保存目录或重命名下载文件名 -c 断点续 ...
- Centos-gizp压缩文件-gzip gunzip
gzip gunzip 将一般文件进行压缩或者解压,默认扩展名为 .gz, 本质上 gunzip是gzip硬链接,压缩和解压都可以通过gzip完成 gzip 相关选项 -d 解压 -r 递归压缩目录下 ...
- [VBA原创源代码] excelhome 汇总多工作表花名册
生病了,一点一滴的积累,慢慢康复,今年十月,我就 2 周岁了. 以下代码完成了excelhome中留的作业 http://club.excelhome.net/forum.php?mod=viewth ...