本笔记为zookeeper单机多实例配置参考
基础安装配置请参考 zookeeper 单机运行配置
查看端口是否可用
本笔记使用 2181 - 2183,2000 - 2003,3000 -3003 这9个端口。如果你的机器上这些端口被占用,你可以使用其他端口,只需要修改相应的配置即可。
查看端口使用状态参考命令
netstat -ano | grep 2181
netstat -ano | grep 2000
netstat -ano | grep 3000
...
配置分布式信息
cd /usr/local/zookeeper
vim conf/zoo.cfg
新增如下配置
#如果是非单机多实例,把IP地址改为实际服务器IP即可
server.1=127.0.0.1:2000:3000
server.2=127.0.0.1:2001:3001
server.3=127.0.0.1:2002:3002
复制多份配置文件,参考命令:
cp conf/zoo.cfg conf/zoo-slave1.cfg
cp conf/zoo.cfg conf/zoo-slave2.cfg
分别修改 zoo-slave1.cfg 和 zoo-slave2.cfg 配置文件,修改地方分别有:
- clientPort (参考值:分别修改为2182 和 2183)
- dataDir (参考值:分别修改为/tmp/zookeeper/data/slave1 和 /tmp/zookeeper/data/slave2)
- dataLogDir (参考值:分别修改为 /tmp/zookeeper/log/slave1 和 /tmp/zookeeper/log/slave2)
检查以上配置目录是否存在,以及权限是否正确,如正确,则配置完成。
分配运行时ID
如上,我们配置了三个不同的 zookeeper 实例,但是如何区分它们呢,这就需要一个运行时ID。
参考命令:
echo "1" /tmp/zookeeper/data/myid
echo "2" /tmp/zookeeper/data/slave1/myid
echo "3" /tmp/zookeeper/data/slave2/myid
运行zookeeper
参考命令
bin/zkServer.sh start conf/zoo.cfg
bin/zkServer.sh start conf/zoo-slave1.cfg
bin/zkServer.sh start conf/zoo-slave2.cfg
查看zookeeper运行状态
参考命令
bin/zkServer.sh status conf/zoo.cfg
bin/zkServer.sh status conf/zoo-slave1.cfg
bin/zkServer.sh status conf/zoo-slave2.cfg
可以看到,其中一个zookeeper进程的运行模式为Mode:leader
另外两个zookeeper进程的运行模式为Mode:follower
至此,zookeeper完成集群配置