环境
主机名 | IP |
---|---|
zk01 | 192.168.1.195 |
zk02 | 192.168.1.197 |
zk03 | 192.168.1.203 |
zk04 | 192.168.1.204 |
下载zookeeper
代码语言:javascript复制https://zookeeper.apache.org/从官网下载安装包
配置zk01、zk02、zk03
修改三个节点的主配置文件
代码语言:javascript复制vim /data/zookeeper/conf/zoo.cfg
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
修改三个节点的动态配置文件
代码语言:javascript复制vim /data/zookeeper/conf/zoo.cfg.dynamic
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文件
代码语言:javascript复制echo 1 > /data/zookeeper/data/myid # zk01执行
echo 2 > /data/zookeeper/data/myid # zk02执行
echo 3 > /data/zookeeper/data/myid # zk03执行
启动三个节点的zookeeper
代码语言:javascript复制/data/zookeeper/bin/zkServer.sh start # 启动zookeeper
/data/zookeeper/bin/zkServer.sh stop # 停止zookeeper
/data/zookeeper/bin/zkServer.sh status # 查看启动状态
动态扩容
动态添加zk04节点
修改zk04节点的zoo.cfg.dynamic
代码语言:javascript复制vim /data/zookeeper/conf/zoo.cfg.dynamic
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
创建zk04的myid文件
代码语言:javascript复制echo 4 > /data/zookeeper/data/myid
启动zk04
代码语言:javascript复制/data/zookeeper/bin/zkServer.sh start
添加zk04到集群
代码语言:javascript复制/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.xxxxxx,并且zoo.cfg指向该dynamic文件
动态删除zk01节点
在任意一节点执行以下命令,删除zk01节点
代码语言:javascript复制/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节点
代码语言:javascript复制/data/zookeeper/bin/zkServer.sh stop