记录Zookeeper的集群搭建过程。
Zookeeper集群中有三种角色:
- Leader: 处理所有的写请求,可以处理读请求,集群中只能有一个Leader
- Follower:只能处理读请求,能参与Leader选举
- Observer:只能处理读请求,不能参与选举
copy一份配置文件:
cp conf/zoo_sample.cfg conf/zoo1.cfg
配置zoo1.cfg:
dataDir=/usr/local/zookeeper/zkdata/zk1 clientPort=2181 # 集群环境,2001:follower和leader通信的端口;3001:集群选举使用的端口,一开始是不知道leader和follower,是通过选举算法实现的 server.1=192.168.0.33:2001:3001 server.2=192.168.0.33:2002:3002 server.3=192.168.0.33:2003:3003 # 第四台机器配置成observer节点 server.4=192.168.0.33:2004:3004:observer
复制三份zoo1.cfg,分别命名zoo2.cfg、zoo3.cfg、zoo4.cfg,这四个文件的clientPort使用2181、2182、2183、2184,对应的dataDir也要修改,不做赘述
创建必要的文件目录:
cd /usr/local/zookeeper/ mkdir zkdata cd zkdata mkdir zk1 zk2 zk3 zk4 cd /usr/local/zookeeper/zkdata/zk1 vi myid 1 cd /usr/local/zookeeper/zkdata/zk2 vi myid 2 cd /usr/local/zookeeper/zkdata/zk3 vi myid 3 cd /usr/local/zookeeper/zkdata/zk4 vi myid 4
分别启动
./bin/zkServer.sh start conf/zoo1.cfg ./bin/zkServer.sh start conf/zoo2.cfg ./bin/zkServer.sh start conf/zoo3.cfg ./bin/zkServer.sh start conf/zoo4.cfg
检查状态:
[root@huawei1 zookeeper]# ./bin/zkServer.sh status conf/zoo1.cfg ZooKeeper JMX enabled by default Using config: conf/zoo1.cfg Client port found: 2181. Client address: localhost. Mode: follower [root@huawei1 zookeeper]# ./bin/zkServer.sh status conf/zoo2.cfg ZooKeeper JMX enabled by default Using config: conf/zoo2.cfg Client port found: 2182. Client address: localhost. Mode: leader [root@huawei1 zookeeper]# ./bin/zkServer.sh status conf/zoo3.cfg ZooKeeper JMX enabled by default Using config: conf/zoo3.cfg Client port found: 2183. Client address: localhost. Mode: follower [root@huawei1 zookeeper]# ./bin/zkServer.sh status conf/zoo4.cfg ZooKeeper JMX enabled by default Using config: conf/zoo4.cfg Client port found: 2184. Client address: localhost. Mode: observer
查看集群配置:
./bin/zkCli.sh -server 127.0.0.1:2181 [zk: 127.0.0.1:2181(CONNECTED) 3] get /zookeeper/config server.1=192.168.0.33:2001:3001:participant server.2=192.168.0.33:2002:3002:participant server.3=192.168.0.33:2003:3003:participant server.4=192.168.0.33:2004:3004:observer version=0
集群配置完成