因为服务器有限。因此只能在一台服务器通过改端口启动三台
准备文件
- 分别复制三个文件
#创建文件夹
mkdir ./zookeeper-jiqun/
#复制文件
cp -r apache-zookeeper-3.7.0-bin ./zookeeper-jiqun/apache-zookeeper-3.7.0-bin-1
cp -r apache-zookeeper-3.7.0-bin ./zookeeper-jiqun/apache-zookeeper-3.7.0-bin-2
cp -r apache-zookeeper-3.7.0-bin ./zookeeper-jiqun/apache-zookeeper-3.7.0-bin-3
- 修改配置文件
- zookeeper1
cd ./zookeeper-jiqun
vim apache-zookeeper-3.7.0-bin-1/conf/zoo.cfg
#只列举出修改的内容
#数据存储地址
dataDir=/root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-1/
#对客户端提供服务接口
clientPort=2181
#数据文件目录
dataLogDir=/root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-1
#zookeeper自带的jetty容器端口默认是8080.因为在一台机器上为避免端口冲突也改一下。
admin.serverPort=8001
#解决ip无法绑定问题 当设置为true时,ZooKeeper服务器将会在所有可用的IP地址上监听来自其对等点的连接请求,而不仅是配置文件的服务器列表中配置的地址。它会影响处理ZAB协议和Fast Leader Election协议的连接。默认值是false。 好像只有云服务器需要设置
quorumListenOnAllIPs=true
#集群地址:集群内通信端口:选取leader使用端口
server.1=127.0.0.1:2111:3111
server.2=127.0.0.1:2222:3222
server.3=127.0.0.1:2333:3333
- zookeeper2
vim apache-zookeeper-3.7.0-bin-2/conf/zoo.cfg
#只列举出修改的内容
#数据存储地址
dataDir=/root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-2/
#对客户端提供服务接口
clientPort=2182
#数据文件目录
dataLogDir=/root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-2
#zookeeper自带的jetty容器端口默认是8080.因为在一台机器上为避免端口冲突也改一下。
admin.serverPort=8002
#解决ip无法绑定问题
quorumListenOnAllIPs=true
#集群地址:集群内通信端口:选取leader使用端口
server.1=127.0.0.1:2111:3111
server.2=127.0.0.1:2222:3222
server.3=127.0.0.1:2333:3333
- zookeeper3
cd ./zookeeper-jiqun
vim apache-zookeeper-3.7.0-bin-3/conf/zoo.cfg
#只列举出修改的内容
#数据存储地址
dataDir=/root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-3/
#对客户端提供服务接口
clientPort=2183
#数据文件目录
dataLogDir=/root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-3
#zookeeper自带的jetty容器端口默认是8080.因为在一台机器上为避免端口冲突也改一下。
admin.serverPort=8003
#解决ip无法绑定问题
quorumListenOnAllIPs=true
#集群地址:集群内通信端口:选取leader使用端口
server.1=127.0.0.1:2111:3111
server.2=127.0.0.1:2222:3222
server.3=127.0.0.1:2333:3333
- 设置pid
#对应server.1
echo 1 > apache-zookeeper-3.7.0-bin-1/myid
#对应server.2
echo 2 > apache-zookeeper-3.7.0-bin-2/myid
#对应server.3
echo 3 > apache-zookeeper-3.7.0-bin-3/myid
- 启动服务并查看健康状态
./apache-zookeeper-3.7.0-bin-1/bin/zkServer.sh start
./apache-zookeeper-3.7.0-bin-2/bin/zkServer.sh start
./apache-zookeeper-3.7.0-bin-3/bin/zkServer.sh start
./apache-zookeeper-3.7.0-bin-1/bin/zkServer.sh status
#出现如下页面说明启动成功
[root@VM-8-7-centos zookeeper-jiqun]# ./apache-zookeeper-3.7.0-bin-1/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-1/bin/../conf/zoo.cfg
Client port found: 2182. Client address: localhost. Client SSL: false.
Mode: follower
[root@VM-8-7-centos zookeeper-jiqun]# ./apache-zookeeper-3.7.0-bin-2/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-2/bin/../conf/zoo.cfg
Client port found: 2183. Client address: localhost. Client SSL: false.
Mode: leader
[root@VM-8-7-centos zookeeper-jiqun]# ./apache-zookeeper-3.7.0-bin-3/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /root/lch/zookeeper-jiqun/apache-zookeeper-3.7.0-bin-3/bin/../conf/zoo.cfg
Client port found: 2184. Client address: localhost. Client SSL: false.
Mode: follower
备注
- 若启动失败可以到dataLogDir指定的目录下查看失败日志。
- 若出现一个服务启动成功另一个服务启动失败的情况有可能是配置文件有重复地方比如 dataDir