說明
不可避免的,zookeeper集群出現某個節點由於各種原因導致服務掛了,那么此時就需要進行對該節點的修復工作,那么下面開始介紹;
本次的操作是基於前一篇的 CentOS 7 Zookeeper 介紹 及 集群安裝
模擬 leader
宕機后,恢復zookeeper服務后重新加入到集群中。
模擬宕機
在當前集群中,leader節點為 node03,那么直接手動停止服務后,直接刪除服務的所有文件;
[root@node03 zookeeper_cluster]# /opt/zookeeper_cluster/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper_cluster/bin/../conf/zoo.cfg
Mode: leader
# 這里能看到當前是leader
[root@node03 zookeeper_cluster]# /opt/zookeeper_cluster/bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper_cluster/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[root@node03 zookeeper_cluster]# /opt/zookeeper_cluster/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper_cluster/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
# 這里已經提醒不在運行
下面刪除服務文件
[root@node03 ~]# ls -ld /opt/zookeeper*
drwxr-xr-x 12 root root 4096 Mar 1 01:02 /opt/zookeeper-3.4.13
lrwxrwxrwx 1 root root 21 Mar 1 00:50 /opt/zookeeper_cluster -> /opt/zookeeper-3.4.13
[root@node03 ~]# rm -rf /opt/zookeeper*
恢復
服務安裝
cd /opt/soft/
tar xf zookeeper-3.4.13.tar.gz
mv zookeeper-3.4.13 /opt/
ln -s /opt/zookeeper-3.4.13 /opt/zookeeper_cluster
ls -ld /opt/zookeeper*
# drwxr-xr-x 10 501 games 4096 Jul 1 2018 /opt/zookeeper-3.4.13
# lrwxrwxrwx 1 root root 21 Mar 1 00:50 /opt/zookeeper_cluster -> /opt/zookeeper-3.4.13
服務配置
這里只操作node03
mkdir /opt/zookeeper_cluster/{data,logs}
echo "3" > /opt/zookeeper_cluster/data/myid
cd /opt/zookeeper_cluster/conf/
cat > zoo.cfg <<EOF
tickTime=2000
initLimit=10
syncLimit=5
dataLogDir=/opt/zookeeper_cluster/logs
dataDir=/opt/zookeeper_cluster/data
clientPort=2181
autopurge.snapRetainCount=500
autopurge.purgeInterval=24
server.1=172.16.1.11:2888:3888
server.2=172.16.1.12:2888:3888
server.3=172.16.1.13:2888:3888
EOF
啟動測試
[root@node03 conf]# /opt/zookeeper_cluster/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper_cluster/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@node03 conf]# /opt/zookeeper_cluster/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper_cluster/bin/../conf/zoo.cfg
Mode: follower
# 這里提示,已經加入到集群中
此時再次查看其它兩台 狀態,發現node01 現在是leader
。
[root@node01 zookeeper_cluster]# /opt/zookeeper_cluster/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper_cluster/bin/../conf/zoo.cfg
Mode: leader