环境
| 主机名 | 主机IP |
|---|
| zk01 | 192.168.1.195 |
| zk02 | 192.168.1.199 |
| zk03 | 192.168.1.203 |
| zk04 | 192.168.1.204 |
部署 Zookeeper 集群
下载安装包
1
| https://zookeeper.apache.org
|
配置 zk01、zk02、zk03
修改三个节点的主配置文件 vim /data/zookeeper/conf/zoo.cfg
1
2
3
4
5
6
7
8
9
10
11
| autopurge.purgeInterval=1
initLimit=10
syncLimit=5
skipACL=yes # 跳过acl检查,如果不设置成yes,则需要superuser权限才能执行reconfig
maxClientCnxns=2000
tickTime=2000
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/log
4lw.commands.whitelist=* # zookeeper可以响应的四个字母单次的命令有哪些,*表示所有四个字母命令
reconfigEnabled=true # 启用该功能后,zookeeper可以动态的增加服务器列表
dynamicConfigFile=/data/program/zookeeper/conf/zoo.cfg.dynamic
|
修改三个节点的动态配置文件 vim /data/zookeeper/conf/zoo.cfg.dynamic
1
2
3
| server.1=192.168.1.195:2888:3888;0.0.0.0:12181
server.2=192.168.1.197:2888:3888;0.0.0.0:12181
server.3=192.168.1.203:2888:3888;0.0.0.0:12181
|
创建三个节点的 myid 文件
1
2
3
| echo 1 > /data/zookeeper/data/myid # zk01执行
echo 2 > /data/zookeeper/data/myid # zk02执行
echo 3 > /data/zookeeper/data/myid # zk03执行
|
启动三个节点的 zookeeper 服务
1
2
3
| /data/zookeeper/bin/zkServer.sh start # 启动zookeeper
/data/zookeeper/bin/zkServer.sh stop # 停止zookeeper
/data/zookeeper/bin/zkServer.sh status # 查看启动状态
|
动态扩容节点(添加 zk04 节点)
修改 zk04 节点的配置文件
vim /data/zookeeper/conf/zoo.cfg.dynamic
1
2
3
4
| server.1=192.168.1.195:2888:3888;0.0.0.0:12181
server.2=192.168.1.197:2888:3888;0.0.0.0:12181
server.3=192.168.1.203:2888:3888;0.0.0.0:12181
server.4=192.168.1.204:2888:3888;0.0.0.0:12181
|
创建 myid 文件
1
| echo 4 > /data/zookeeper/data/myid
|
启动 zk04 服务
1
| /data/zookeeper/bin/zkServer.sh start
|
添加 zk04 到集群
1
2
3
| /data/zookeeper/bin/zkCli.sh -server 127.0.0.1:12181
[zk: 127.0.0.1:12181(CONNECTED) 1] reconfig -add 4=192.168.1.204:2888:3888;0.0.0.0:12181
[zk: 127.0.0.1:12181(CONNECTED) 1] config
|
执行完 reconfig 命令后,所有节点都生成一份新的配置文件 zoo.cfg.dynamic.xxxxx,并且 zoo.cfg 指向该dynamic文件
动态缩减节点(删除 zk01 节点)
在任意一节点执行以下命令,删除 zk01 节点
1
2
3
| /data/zookeeper/bin/zkCli.sh -server 127.0.0.1:12181
[zk: 127.0.0.1:12181(CONNECTED) 1] reconfig -remove 1
[zk: 127.0.0.1:12181(CONNECTED) 1] config
|
停止 zk01 节点
1
| /data/zookeeper/bin/zkServer.sh stop
|