本文主要介绍了部署一个三节点的zookeeper集群
更新于 2021-04-017
下载
下载地址:http://archive.apache.org/dist/zookeeper/
需要下载的包必须带
bin
,这个是编译好的,否则运行会报错
1 | wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz |
安装
下载好的zookeeper压缩包已经经过编译,直接解压就可以用:
1 | # 在每个节点都下载 |
建立配置文件
默认没有配置文件,可以直接复制配置文件模板:
1 | # 在每个节点都执行 |
创建数据目录
虽然zookeeper一般数据量不大,但是还是推荐使用单独的数据盘:
1 | # 在每个节点都执行 |
然后在每个节点都修改配置文件的如下字段,使用数据目录:
1 | # conf/zoo.cfg |
添加zookeeper节点
在每个节点的配置文件zoo.cfg
中,添加zookeeper集群每台节点的地址,例如我这里是三节点的集群:
1 | # conf/zoo.cfg |
2888
为zookeeper节点间的通信端口号,3888
为选举的端口号;主从关系通过3888
自动选举产生,配置中不需要指定;
server
后面的数字为集群中节点的id,可以随便起但是不能相同;
添加id文件
在上一步中添加了三个节点:
1 | server.2=192.168.12.12:2888:3888 |
现在到192.168.12.12
这个节点的zookeeper数据目录/data/zookeeper
下,设置节点id文件:
1 | cd /data/zookeeper |
myid
这个文件名是固定的不能变;文件的内容就是这个节点的id号,根据配置文件中指定的数字配置;
其他的节点,需要执行相同的操作,注意id设置为自己的id;
设置日志位置
默认日志位置是放在安装目录下的logs下,可以在bin/zkENV.sh
中,修改下面的代码进行重新设置:
1 | # bin/zkENV.sh |
然后创建日志目录:
1 | mkdir /data/zookeeper/logs |
设置JAVA_HOME
如果需要设置JAVA_HOME
变量,则可以在bin/zkENV.sh
的前面设置一个环境变量即可:
1 | # bin/zkENV.sh |
启动
在每个节点都执行启动命令:
1 | bin/zkServer.sh start |
查看状态
当集群一半以上的节点都启动之后,整个集群才会正常工作,此时执行下面的命令查看服务状态:
1 | bin/zkServer.sh status |
如果出现Mode: follower
则表示该节点为从节点;如果出现Mode: leader
则表示该节点为主节点