zookeeper集群部署及验证

本文详细介绍了在CentOS7.x环境下Zookeeper集群的部署步骤,包括JDK的安装、配置,Zookeeper的下载、安装,配置文件zoo.cfg的修改,以及myid文件的创建。同时,讲解了启动Zookeeper服务和验证集群状态的方法。在遇到启动报错时,提供了删除version-2文件夹的解决策略。

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

zookeeper集群部署及验证

准备阶段

# 服务器准备【centos7.x】
172.31.108.31  zk01
172.31.108.32  zk02
172.31.108.33  zk03
# 安装包下载url:http://archive.apache.org/dist/zookeeper/
# zookeeper运行依赖java,需要提前安装配置好java

zookeeper集群部署

安装JDK,配置环境变量

[root@zk01 ~]# tar -xvzf jdk-8u202-linux-x64.tar.gz -C /data/java/
[root@zk01 ~]# tail -4 /etc/profile
## 配置java环境变量
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@zk01 ~]# source /etc/profile

安装zookeeper

# 请下载带有bin字段的压缩包。其他压缩包后面会报错,提示找不到主类
[root@zk01 ~]# tar -zvxf  apache-zookeeper-3.7.1-bin.tar.gz -C /data/
[root@zk01 ~]# mv /data/apache-zookeeper-3.7.1-bin/ /data/zookeeper-3.7.1-bin/
# 修改配置文件
# 先进入conf目录
[root@zk01 ~]# cd /data/zookeeper-3.7.1-bin/conf
# 模板文件zoo_simple.cfg,先拷贝一份出来再改动
[root@zk01 conf]# cp zoo_sample.cfg zoo.cfg
# 主要修改项 
tickTime=2000					# 客户端与服务器之间的心跳时间就是一个tickTime单位。默认值为2000毫秒
initLimit=10					# zk集群Follower连接到Leader并同步数据的最大时间。如果zookeeper数据比较大,考虑调大这个值
syncLimit=5						# zk集群Follower同步Leader的最大时间
dataDir=/data/zk/data			# 配置zookeeper server数据的存放路径
dataLogDir=/data/zk/logs		# 存储事务日志。不配置的话,默认事物日志存储在dataDir路下
clientPort=2181					# 定义客户端连接zookeeper server的端口。默认为2181
server.1=ip(zk01):port1:port2	# 用来设置集群中某台server的参数,myid文件确定当前节点的id。port1是follower连接leader同步数据和转发请求用,port2是leader选举用
server.2=ip(zk02):port1:port2
server.3=ip(zk03):port1:port2
leaderServes					# 用于配制Leader节点是否接收客户端请求,默认情况下这个值是yes ,当集群中节点数量超过3个,建议设置为false,关闭leader节点接收客户端请求
cnxTimeout						# 设置连接Leader接收通知的最大超时时间,该参数只在使用electionAlg 3时生效
electionAlg						# leader选举算法,1表示基于UDP通信的不进行权限验证算法,2表示进行基于UDP通信的进行权限验证算法,3表示基于TCP通信的fast leader选举

# 试验使用,后三项可以不用配置,直接注释

新建目录【logs和zkdata】,创建文件myid

## logs和zkdata目录路径参照zoo.cfg
# logs存储事务日志
# zkdata是zk数据存放路径

# myid是zoo.cfg文件里定义的server.A项A的值,Zookeeper 启动时读取这个文件,拿到值与 zoo.cfg 里的配置信息比较,判断到底是哪个server,只是一个标识作用。
[root@zk01 ~]# mkdir /data/zookeeper-3.7.1-bin/{zkdata,logs}

[root@zk01 ~]# echo "1" > /data/zookeeper-3.7.1-bin/data/myid
[root@zk02 ~]# echo "2" > /data/zk/data/myid
[root@zk03 ~]# echo "3" > /data/zk/data/myid

启动zookeeper

# zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|version|restart|status|print-cmd}	# zkServer.sh可以跟的参数
[root@zk01 ~]# /data/zookeeper-3.7.1-bin/bin/zkServer.sh start
[root@zk02 ~]# /data/zookeeper-3.7.1-bin/bin/zkServer.sh start
[root@zk03 ~]# /data/zookeeper-3.7.1-bin/bin/zkServer.sh start

集群验证

# 集群验证只需zkServer.sh status即可
[root@zk01 ~]# /data/zookeeper-3.7.1-bin/bin/zkServer.sh status
[root@zk02 ~]# /data/zookeeper-3.7.1-bin/bin/zkServer.sh status
[root@zk03 ~]# /data/zookeeper-3.7.1-bin/bin/zkServer.sh status

# 示例
[root@zk01 ~]# /iflytek/zookeeper-3.7.1-bin/bin/zkServer.sh  status
ZooKeeper JMX enabled by default
Using config: /iflytek/zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower		# follower为从

# Mode:follower为从
# Mode:leader为主

启动报错

# ZooKeeper报错:Unable to access datadir, exiting abnormally
## 解决方法就是删除启动进程时自动创建的文件夹version-2,并重新启动zk
## /data/zookeeper-3.7.1-bin/logs/version-2
## /data/zookeeper-3.7.1-bin/zkdata/version-2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值