(1) 将/data/zookeeper/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
|
(2) 打开 zoo.cfg 文件,修改 dataDir 路径:
修改数据存储路径配置
dataDir=/data/zookeeper/zkData
|
增加如下配置
server.1=192.168.11.201:2888:3888
server.2=192.168.11.202:2888:3888
server.3=192.168.11.203:2888:3888
|
(3) 在/data/zookeeper这个目录上创建 zkData 文件夹
(4)配置参数解读
server.A=B:C:D。
A 是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件 myid, 这个文件在 dataDir 目录下,这个文件里面有一个数据
就是 A 的值, Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比
较从而判断到底是哪个 server。
B 是这个服务器的地址;
C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的
Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
|
3) 配置服务器编号
(1)在/data/zookeeper/zkData 目录下创建一个 myid 的文件
在文件中添加与 server 对应的编号(注意:上下不要有空行,左右不要有空格)
(3)拷贝配置好的 zookeeper 到其他机器上
scp -r /data/zookeeper 192.168.11.202:/data
scp -r /data/zookeeper 192.168.11.203:/data
|
并分别在 202,203服务器上修改 myid 文件中内容为2、3
4) 集群操作
(1)分别启动 Zookeeper
/data/zookeeper/bin/zkServer.sh start
|
(2)查看状态
/data/zookeeper/bin/zkServer.sh status
|

(3)关闭zookeeper
/data/zookeeper/bin/zkServer.sh stop
|
5) 添加系统服务
(1)创建系统服务文件并写入内容
cat > /lib/systemd/system/zookeeper.service <<EOF
[Unit]
Description=Zookeeper Service
After=network.target
ConditionPathExists=/data/zookeeper/conf/zoo.cfg
[Service]
Type=forking
Environment=JAVA_HOME=/java/jdk1.8.0_161
ExecStart=/data/zookeeper/bin/zkServer.sh start
ExecStop=/data/zookeeper/bin/zkServer.sh stop
ExecReload=/data/zookeeper/bin/zkServer.sh restart
Restart=always
[Install]
WantedBy=multi-user.target
EOF
|
(2)启动服务
systemctl daemon-reload
systemctl start zookeeper.service
systemctl enable zookeeper.service
|
(3)查看服务
systemctl status zookeeper.service
|
