zookeeper分布式部署
1、准备
第一步:准备3台主机,ip地址如下:
- server1:192.168.7.11
- server2:192.168.7.12
- server3:192.168.7.13
第二步:分别关闭每台服务器的防火墙
systemctl stop firewalld
systemctl disable firewalld
2、开始配置
第一步:确认zookeeper安装路径为 /opt/zookeeper/
第二步:确认主机的zookeeper配置文件 /opt/zookeeper/conf/zoo.cfg
数据文件目录:
dataDir=/opt/zookeeper/zkData
第三步:配置服务器编号
- 在数据文件目录中新建一个 myid 文件,并在文件中添加对应的server编号
cd /opt/zookeeper/zkData
touch myid
echo 1 > myid
server1的编号为 1 ,其余两条的编号为2和3
第四步:配置zoo.cfg文件
向配置文件中增加如下内容:
server.1=192.168.7.11:2888:3888
server.2=192.168.7.12:2888:3888
server.3=192.168.7.13:2888:3888
- 配置参数解读 server.A=B:C:D
- A:一个数字表示第几号服务器,myid 文件中的值就是A的值
- B:服务器ip地址
- C:集群中与leader服务器交换信息的端口
- D:选举时专用端口;万一集群中的leader挂了,需要一个端口用来重新选举
第五步:配置其余两条服务器
在另外两条服务器上操作第三步和第四步
Server2:
cd /opt/zookeeper/zkData
touch myid
echo 2 > myid
vi /opt/zookeeper/conf/zoo.cfg
# 添加如下内容
server.1=192.168.7.11:2888:3888
server.2=192.168.7.12:2888:3888
server.3=192.168.7.13:2888:3888
Server3:
cd /opt/zookeeper/zkData
touch myid
echo 3 > myid
vi /opt/zookeeper/conf/zoo.cfg
# 添加如下内容
server.1=192.168.7.11:2888:3888
server.2=192.168.7.12:2888:3888
server.3=192.168.7.13:2888:3888
3、集群操作
分别启动三台服务器的zookeeper
cd /opt/zookeeper/bin
./zkServer.sh start
三台服务器分别启动时的状态
Zookeeper集群采用半数机制:集群中半数以上机器存活,集群可用。所以zookeeper适合安装奇数台服务器。
1、 启动第一台服务器后,使用 ./zkServer.sh status
命令查看状态是显示未启动
[root@server1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.
[root@server1 bin]# jps
1464 Jps
1164 QuorumPeerMain
2、 启动第二台服务器后,分别查看两台服务状态
此时server2模式为leader(主),server1模式为follower(从)
[root@server2 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
[root@server1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
3、 再启动第三台服务器,并检查状态
此时server3模式也为follower(从)
[root@server3 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower