文章目录
1.引言
ZooKeeper是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供群组服务。其高效且稳定的特性使得它成为分布式环境中的不可或缺的组件。本文将深入探讨如何在CentOS 系统上安装和配置最新版本的ZooKeeper,涵盖从单节点到集群的全面部署。
2.环境准备
2.1 软件版本
系统版本:centos7.6
jdk版本:jdk8(从zookeeper3.5.5开始,最低的jdk版本就是jdk8)
zookeeper版本:3.8.1
2.2 安装jdk
- 登陆jdk8下载地址,下载jdk8,也可以使用我复制出来的地址
- 解压到/usr/local/jdk
- 配置环境变量,
vi /etc/profile
,在末尾添加
#java environmentexportJAVA_HOME=/usr/local/jdk
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportPATH=$PATH:$JAVA_HOME/bin
执行刷新命令是配置生效:
source /etc/profile
- 执行
java -version
打印jdk信息
[root@localhost ~]# java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM)64-Bit Server VM (build 25.301-b09, mixed mode)[root@worker1 zookeeper]#
3.下载和解压
登陆下载地址,选择下载最新的3.8.1版本或者使用我复制的地址
执行解压
tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz
移动目录
mv apache-zookeeper-3.8.1-bin /usr/local/zookeeper
4.配置文件详解
# 设置ZooKeeper的基本时间单元(单位:毫秒)。该时间用于心跳和超时等。tickTime=2000# 设置ZooKeeper集群中的Follower服务器初始化连接到Leader服务器的超时时间(以tickTime的倍数表示)initLimit=10# 设置ZooKeeper集群中Follower服务器与Leader服务器之间的同步限制(以tickTime的倍数表示)syncLimit=5# 指定ZooKeeper数据存储目录 dataDir=/usr/local/zookeeper/data
# 指定ZooKeeper事务日志目录,如果不配置默认使用dataDir配置dataLogDir=/usr/local/zookeeper/logs
# 指定ZooKeeper客户端访问端口clientPort=2181# 设置ZooKeeper的最大客户端连接数。设置为0表示无限制maxClientCnxns=60# 设置自动清理旧的事务快照文件的保留数量
autopurge.snapRetainCount=3# 设置自动清理旧的事务快照文件的时间间隔(以小时为单位),设置为"0"以禁用自动清理功能
autopurge.purgeInterval=1
5.单节点安装
进入到 zookeeper目录下执行创建数据目录和日志目录
[root@localhost zookeeper]# mkdir {data,logs}
在 conf目录下,复制 zoo_sample.cfg并重命名为 zoo.cfg,zookeeper启动时会寻找conf目录下的zoo.cfg配置文件
[root@localhost zookeeper]# cp conf/zoo_sample.cfg conf/zoo.cfg
修改zoo.cfg文件,主要修改数据目录和日志目录
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
执行启动命令
bin/zkServer.sh start
或者,这里需要注意的是–config是跟配置文件的目录,不是跟配置文件
bin/zkServer.sh --config conf start
检查是否启动,执行
jps
,可以看到 多了一个QuorumPeerMain进程,说明以及启动成功
[root@localhost zookeeper]# jps7698 QuorumPeerMain
7810 Jps
[root@localhost zookeeper]#
6.集群安装
6.1 机器准备
我准备了三台都安装了jdk8的机器,分别是 192.168.1.21,192.168.1.22,192.168.1.23
为了后续配置方便,需要分别修改机器的hostname,
机器1执行:
hostnamectl set-hostname worker1
机器2执行:
hostnamectl set-hostname worker2
机器2执行:
hostnamectl set-hostname worker3
可以通过
uname -a
查看使用生效
同时还需要修改了这三台机器本地的host文件内容:
192.168.1.21 worker1
192.168.1.22 worker2
192.168.1.23 worker3
*修改host内容执行
vi /etc/hosts
,修改后保存就生效*
6.2 修改配置文件
三台机器需要在zookeeper安装目录下创建数据目录 data 和日志目录 logs
因为三台机器配置了hostname和修改了host,所以三台机器可以使用下面相同的配置:
tickTime=2000initLimit=10syncLimit=5dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181maxClientCnxns=60
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=worker1:2888:3888
server.2=worker2:2888:3888
server.3=worker3:2888:3888
关于
server.1=worker1:2888:3888
的详解:
1 :是服务器的唯一标识,后续在数据目录下创建 myid 文件,文件内容就是该ID的值(6.3步骤创建内容)
worker1 :是服务器的主机名或 IP 地址,前面修改了host内容,所以可以使用worker1
2888 :节点间数据同步的通信端口
3888 :用于选举 Leader 节点的通信端口
6.3 创建myid文件
机器1执行:
echo 1 >> /usr/local/zookeeper/data/myid
机器2执行:
echo 2 >> /usr/local/zookeeper/data/myid
机器3执行:
echo 3 >> /usr/local/zookeeper/data/myid
6.4 启动集群
在三台机器上分别执行启动命令
bin/zkServer.sh start
7. GUI工具推荐
我这里推荐使用PrettyZoo,我是在windows下使用,所以下载prettyZoo-win.zip
下载解压后,直接双击prettyZoo.exe即可使用
8. 测试集群
使用prettyZoo工具,添加我们机器1的地址,添加ip地址后,点击save保存
添加数据,输入路径和数据后点击 create 创建
添加并连接机器2
可以看到我们前面子在机器1添加的数据
- 总结 本文详细介绍了在CentOS 7.6上安装和配置ZooKeeper 最新的3.8.1。从环境准备开始,进而到zookeeper的下载和安装,并提供了配置文件的详细解释。同时,还推荐了一个实用的GUI工具,并通过实际的测试验证了集群的安装情况。通过本文,希望你能了解并掌握在CentOS 7.6环境下如何配置和使用ZooKeeper。
版权归原作者 dougsu 所有, 如有侵权,请联系我们删除。