Zookeeper集群搭建笔记

研究kafka的过程中,需要搭建zookeeper集群,过程比较简单,记录一下:
依然是三个虚拟机Centos7环境

192.168.20.3 Master
192.168.20.4 Slave1
192.168.20.5 Slave2

1.下载及配置环境变量

https://zookeeper.apache.org/
官方下载zk的tar包,我下载的是3.4.14版本
放linux下 我的路径是 opt/soft/
tar zxvf zookeeper-3.4.14.tar.gz
然后sudo vim /etc/profile
配置环境变量(也可以不配置):

# zk
export ZOOKEEPER_HOME=/opt/soft/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_HOME/bin

执行source /etc/profile

2.ZK集群配置

进入zookeeper的conf目录下
能发现三个文件,我们主要关注 zoo_sample.cfg文件
执行cp zoo_sample.cfg zoo.cfg源文件备份一下
然后vim zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5

dataDir=/tmp/zookeeper
dataLogDir=/opt/soft/softLogs/zk

clientPort=2181

server.1=Master:2888:3888
server.2=Slave1:2888:3888
server.3=Slave2:2888:3888

这么写精简一些,简单说一下

  • tickTime:心跳时间,每个 tickTime 服务器之间会发送一个心跳。
  • initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
  • syncLimit:Leader和Follower 之间发送消息,请求和应答时间,最长不能超过的时间,这边设置为5,那么时间就是 5*2000=10 秒。
  • dataDir:存的是快照日志,后续需要手动去清理
  • dataLogDir:不设置的话就会存在dataDir里面去,这边单独提出来比较好,因为他记录的是事务日志,最好是和快照区分开,否则会影响性能。
  • clientPort:默认是2181,不用多说了,客户端连接 Zookeeper 服务器的端口。
  • server.* : 这个是zk服务的id,后面可以伴随数字,数字可以自己去设置,后面接上集群机器,但是要注意一点,后续需要在dataDir创建一个myid文件,记录自己的id,好作区分。

然后,我们可以把这个改好的zk配置,分发到其他两台机器上!!!主要是配置,其他都差不多。
然后看dataDir,我的路径是/tmp/zookeeper
所以一路去创建文件夹,然后进入这个文件夹。
根据配置文件vim myid
Master机器,我们里面写1
Slave1机器,我们写2
Slave2机器,我们写3
保存。

完成配置,接下来就去看看是否启动!!

3.启动

分别去三台机器的zookeeper的bin目录下
开启:zkServer.sh start
都开启后我们可以看一下是否成功了!

使用jps命令查看是否启动,看到QuorumPeerMain证明成功了。

查看状态:zkServer.sh status
Using config是使用的配置文件
Mode是角色
角色分为leader和follower
一般情况下,zk集群只有一个leader,剩下的都是follower,leader一般来响应客户端的读写请求。而follower是去同步数据,一旦leader挂掉,就会从follower中投票选举一个新leader出来。

这边多提一句,快照和事务的日志文件可以定期删掉,因为zk它默认是不清理的,所以可以通过写脚本加crontab定时器的形式去定期清理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值