Zookeeper集群部署

本文详细介绍了Zookeeper集群的部署过程,包括前置准备(需要JDK和Zookeeper安装包)、解压配置zoo.cfg文件、创建dataDir和dataLogDir、设置myid,以及通过scp拷贝配置到其他节点。在启动过程中,通过观察启动顺序和状态,揭示了Zookeeper集群的主从选举机制和挂掉半数不可用的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前置准备

JDK:zookeeper是基于java语言开发的,jdk必不可少
Zookeeper安装包:http://mirror.bit.edu.cn/apache/zookeeper/
在这里插入图片描述
(若是要在linux虚拟机部署集群效果,还得准备两台以上的虚拟机,在这里我准备三台,之前的博客有关于linux虚拟机的安装配置,可以围观)

2.解压并配置
tar -zxvf zookeeper-3.4.13.tar.gz

进入bin,复制zoo_sample.cfg生成zoo.cfg,然后编辑配置zoo.cfg(当然新建一个zoo.cfg空文件也行)

#复制文件
cp zoo_sample.cfg zoo.cfg

你可知道为什么一定要有这个zoo.cfg文件,来看zookeeper的启动脚本zkServer.sh
在这里插入图片描述
启动脚本调用了zkEnv.sh(同在bin目录下)
在这里插入图片描述
进入zkEnv.sh,可以看到又调用了一个zoo.cfg文件
在这里插入图片描述
到这里就了解了一定要存在zoo.cfg文件才能让zookeeper正常启动

#进入文件编辑
vim zoo.cfg
#编辑增加
dataDir=/usr/local/zookeeper-3.4.13/data/
dataLogDir=/usr/local/zookeeper-3.4.13/datalogs/
server.1=192.168.1.66:2888:3888
server.2=192.168.1.67:2888:3888
server.3=192.168.1.68:2888:3888

在这里插入图片描述

相应地,要创建出dataDir和dataLogDir文件夹

mkdir /usr/local/zookeeper-3.4.13/data/
mkdir /usr/local/zookeeper-3.4.13/datalogs/

在新建的data文件夹下新建myid文件,并写上对应的号数,也就是配置文件中server.n的n,如server.1就写上1

echo 1 > myid

(注:若是部署单机模式,则配置文件只留server.1)

3.拷贝

配置好这一台虚拟机之后就可以用scp命令将配置好的zookeeper拷贝至其他两台虚拟机,然后改下myid,这是每个zookeeper的标志

4.启动

分别启动三台虚拟机的zookeeper

./bin/zkServer.sh start

zookeeper集群有主从之分,我的启动顺序为1(66)–>2(67)–>3(68),那么问题来了,那一台才是leader?
可以查看zookeeper的状态

./bin/zkServer.sh status

在这里插入图片描述
答案是2(67)这台第二启动的zookeeper是leader,其他两台为follower。
zookeeper集群的机制是挂掉半数或者以上就不可用

  • 当第一台zookeeper【1(66)】启动时,它给自己投票,1<3/2,这时的集群是不可用,处于 LOOKING。
  • 当第二台zookeeper【2(67)】启动时,它给自己投票,2>3/2,这时集群可用,由于编号大于第一台zookeeper,选举胜出成为leader,第一台zookeeper成为follower。
  • 当第三台zookeeper【3(68)】启动时,它给自己投票,由于第二台zookeeper已经成为leader,选举已经结束,所以它只能成为follower。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值