Zookeeper3.8集群

DevOps Zookeeper评论2,419字数 2937阅读9分47秒阅读模式

安装jdk

集群规划

zookeper集群至少需要3台服务器,并且强烈建议使用奇数个服务器。因为zookeeper通过半数机制来判断整个集群是否可用,也就是说集群中有一半以上的节点挂掉,集群才不可用。3个节点挂2个,认为已经挂掉,4个节点挂2个,也认为已经挂掉,所以奇数个服务器即可。

三台ZooKeeper服务器:

服务器地址 编号
192.168.1.181 1
192.168.1.182 2
192.168.1.183 3

解压安装

1). 官网下载最新版本的安装包apache-zookeeper-3.8.0-bin.tar.gz

2). 分别上传到3台服务器的/opt/zookeeper目录下

3). 解压安装包到/opt/zookeeper目录下

[root@bogon ~]# wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz --no-check-certificate
[root@bogon ~]# tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /opt/zookeeper/

配置

1). 在/opt/zookeeper/apache-zookeeper-3.8.0-bin这个目录下创建 zkData

[root@bogon ~]# cd /opt/zookeeper/apache-zookeeper-3.8.0-bin/
[root@bogon apache-zookeeper-3.8.0-bin]# mkdir zkData
[root@bogon apache-zookeeper-3.8.0-bin]# cd zkData
[root@bogon zkData]# vim myid
1

2). 复制/opt/zookeeper/apache-zookeeper-3.8.0-bin/conf 这个目录下的 zoo_sample.cfg 为zoo.cfg

[root@bogon conf]# pwd
/opt/zookeeper/apache-zookeeper-3.8.0-bin/conf
[root@bogon conf]# cp zoo_sample.cfg zoo.cfg

3). 修改zoo.cfg文件, 修改数据存储路径,其他配置可以使用默认。

[root@bogon conf]# vim zoo.cfg 
dataDir=/opt/zookeeper/apache-zookeeper-3.8.0-bin/zkData

zoo.cfg中配置说明

配置项 说明
tickTime=2000 心跳时间,默认2000毫秒
initLimit=10 zkserver中leader节点和follower节点初始通信时间,Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
syncLimit=5 zkserver中leader节点和follower节点同步通信时限,Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
dataDir 保存Zookeeper中的数据注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。
clientPort 客户端连接端口,通常不做修改。

4). zoo.cfg末尾增加如下集群相关配置

#######################cluster##########################
server.1=192.168.1.181:2888:3888
server.2=192.168.1.182:2888:3888
server.3=192.168.1.183:2888:3888

配置参数说明:

格式:server.A=B:C:D

  • A是一个数字,表示这个是第几号服务器;集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server。
  • B是这个服务器地址。
  • C是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口。
  • D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

 同步上面操作到剩余服务器

注意:需要修改myid文件中的值为2和3。

[root@bogon opt]# scp -r zookeeper root@192.168.1.182:/opt/
[root@bogon opt]# scp -r zookeeper root@192.168.1.183:/opt/

启动

1). 分别启动3台服务器的zookeeper

[root@bogon apache-zookeeper-3.8.0-bin]# bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.8.0-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

2). 查看状态

[root@bogon apache-zookeeper-3.8.0-bin]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.8.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@bogon apache-zookeeper-3.8.0-bin]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.8.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
[root@bogon apache-zookeeper-3.8.0-bin]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.8.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

3).关停服务

bin/zkServer.sh stop

继续阅读
DevOps
  • 本文由 发表于 2022年12月21日 15:10:24
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Zookeeper3.5.7集群部署 Zookeeper

Zookeeper3.5.7集群部署

简述 ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务。 ZooKeeper本质上是一个分布式的小文件存储系统。提供类似于文件系统目录树方式的...
评论  0  访客  0

发表评论