zookeeper(1)-集群的搭建
集群搭建
1. 下载二进制文件
$ wget --no-check-certificate https://mirrors.ustc.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
$ tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz
2. 创建数据目录
$ cd apache-zookeeper-3.7.0-bin
$ mkdir data
$ mkdir data/zk1 data/zk2 data/zk3
3. 创建 myid 文件,并指定每个服务器标识
$ touch ./data/zk1/myid ./data/zk2/myid ./data/zk3/myid
$ echo 1 > ./data/zk1/myid
$ echo 2 > ./data/zk2/myid
$ echo 3 > ./data/zk3/myid
4. 创建三个配置文件,并添加集群配置
zoo1.cfg
tickTime=2000
initLimit=10
yncLimit=5
dataDir=/Users/zhangpeng/workspace/software/apache-zookeeper-3.7.0-bin/data/zk1
clientPort=2181
# 一般 admin.server 默认的端口号 8080 会被占用,这里改为 8081
admin.server=8081
# 指定集群中服务器
# 端口1:用于数据同步
# 端口2:用于leader选举
server.1=localhost:2880:3880
server.2=localhost:2882:3882
server.3=localhost:2884:3884
zoo2.cfg
tickTime=2000
initLimit=10
yncLimit=5
dataDir=/Users/zhangpeng/workspace/software/apache-zookeeper-3.7.0-bin/data/zk2
clientPort=2182
# 一般 admin.server 默认的端口号 8080 会被占用,这里改为 8081
admin.server=8081
# 指定集群中服务器
# 端口1:用于数据同步
# 端口2:用于leader选举
server.1=localhost:2880:3880
server.2=localhost:2882:3882
server.3=localhost:2884:3884
zoo3.cfg
tickTime=2000
initLimit=10
yncLimit=5
dataDir=/Users/zhangpeng/workspace/software/apache-zookeeper-3.7.0-bin/data/zk3
clientPort=2183
# 一般 admin.server 默认的端口号 8080 会被占用,这里改为 8081
admin.server=8081
# 指定集群中服务器
# 端口1:用于数据同步
# 端口2:用于leader选举
server.1=localhost:2880:3880
server.2=localhost:2882:3882
server.3=localhost:2884:3884
4. 启动
# 启动第一台
$ ./bin/zkServer.sh start ./conf/zoo1.cfg
# 启动第二台
$ ./bin/zkServer.sh start ./conf/zoo2.cfg
# 启动第三台
$ ./bin/zkServer.sh start ./conf/zoo3.cfg
5. 查看各个服务器角色信息
$ ./bin/zkServer.sh status ./conf/zoo1.cfg
$ ./bin/zkServer.sh status ./conf/zoo2.cfg
$ ./bin/zkServer.sh status ./conf/zoo3.cfg
常见问题
你在安装过程中出现的问题,绝对不会只有你一个人碰到过,所以99%的问题都可以在网上找到答案,如果在 stack overflow 和 google上都找不到你想要的答案,并且提问方式没有问题 的话,大胆去问你的同事吧,相信你的同事会称赞👍你问了一个好问题。
# Q1: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.quorumpeermain
# A1: 需要下载带有二进制的包(apache-zookeeper-3.7.0-bin.tar.gz)而不是源码包(apache-zookeeper-3.7.0.tar.gz)
# Q2: 端口号被占用
# A2: admin.server 默认的端口号为 8080,该端口号可能已经被占用,可用 lsof -i:8080 查看是什么进程在占用
所有博文均为原著,如若转载,请注明出处!