zookeeper集群搭建

本文介绍了如何在Linux环境下搭建Zookeeper集群,包括前置条件、Zookeeper的安装、配置及启动服务。强调Zookeeper集群需要奇数个节点以避免“脑裂”,并详细解释了配置文件中的关键参数。

前置条件

  1. zookeeper集群依赖Java环境,需要提前安装配置好JDK.
  2. zookeeper集群的节点必须是奇数,否则可能会造成"脑裂"。

zookeeper容错指的是:当宕掉几个zookeeper节点服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的节点服务数必须大于n/2,这样zookeeper集群才可以继续使用,无论奇偶数都可以选举leader。例如5台zookeeper节点机器最多宕掉2台,还可以继续使用,因为剩下3台大于5/2。至于为什么最好为奇数个节点?这样是为了以最大容错服务器个数的条件下,能节省资源。比如,最大容错为2的情况下,对应的zookeeper服务数,奇数为5,而偶数为6,也就是6个zookeeper服务的情况下最多能宕掉2个服务,所以从节约资源的角度看,没必要部署6(偶数)个zookeeper服务节点。

这里我使用VM部署三台linux虚拟机

ip主机名myid
192.168.48.128zk011
192.168.48.129zk022
192.168.48.130zk033
配置host文件,为三个节点配置域名 方便访问(可以不设置 则对应域名使用真实ip)

vi /etc/hosts在末尾加入 ip 域名 保存退出后生效

#zookeeper
192.168.48.128 zk01
192.168.48.129 zk02
192.168.48.130 zk03

其他两台同样修改,修改后使用ping 测试。
在这里插入图片描述

zookeeper安装

1. 下载安装

国内镜像下载地址:https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.5.9/ 。
在这里插入图片描述
我下载的是 apache-zookeeper-3.5.9-bin.tar.gz点我直接下载地址

下载后将压缩包上传到服务器data/software 目录
使用命令 tar -xzvf apache-zookeeper-3.5.9-bin.tar.gz 解压到当前目录
在这里插入图片描述

2. 修改配置

2.1.进入/data/software/apache-zookeeper-3.5.9-bin/conf/ 复制 zoo_sample.cfgzoo.cfg

#复制模版文件并取名zoo.cfg
cp /data/software/apache-zookeeper-3.5.9-bin/conf/zoo_sample.cfg /data/software/apache-zookeeper-3.5.9-bin/conf/zoo.cfg

2.2.修改zoo.cfg模板,修改dataDir为指定保存数据路径位置,并在末尾添加节点配置信息

# The number of milliseconds of each tick 
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes. 

# 修改需要指定数据保存位置
dataDir=/home/data/zookeeper

# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

#zookeeper node 添加节点配置信息  service.x = ip:内部端口:leader端口   x为数据保存路径下myid内容
server.1=zk01:2888:3888
server.2=zk02:2888:3888
server.3=zk03:2888:3888

配置信息说明:
tickTime:zookeeper中使用的基本时间单位, 毫秒值。
initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个 tickTime 时间间隔数。这里设置为5,表明最长容忍时间为 5 * 2000 = 10 秒。
syncLimit:这个配置标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2 * 2000 = 4 秒。
dataDirdataLogDir 看配置就知道干吗的了,不用解释。
clientPort:监听client连接的端口号,这里说的client就是连接到Zookeeper的代码程序。
server.{myid}={ip}:{leader服务器交换信息的端口}:{当leader服务器挂了后, 选举leader的端口}
maxClientCnxns:对于一个客户端的连接数限制,默认是60

2.3.创建数据保存目录(与dataDir对应)以及myid文件

mkdir -p /home/data/zookeeper
cd /home/data/zookeeper
echo 1 >> myid

ps : echo 1 >> myid译为编写myid文件 内容为1 ,其中 1与zk01对应 ,与zoo.cfg 节点配置对应

2.4. 其他两台服务器可以同样配置,或者使用scp命令进行文件复制zookeeper解压文件过去。复制过去后重复2.3步骤即可。

 scp -r apache-zookeeper-3.5.9-bin root@zk02:/data/software/
 scp -r apache-zookeeper-3.5.9-bin root@zk03:/data/software/
3.启动服务

/data/software/apache-zookeeper-3.5.9-bin/bin 目录下使用命令启动服务

./zkServer.sh start

全部节点启动完之后,再使用status命令查看

./zkServer.sh status

如果启动不成功,需要关闭防火墙,检查2181端口是否占用后再启动
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值