Linux 环境下安装 Zookeeper及集群配置
准备工作
1、安装配置JDK,因为zookeeper的需要JDK的运行环境:
参考此链接下载安装JDK:https://blog.csdn.net/qq_36763419/article/details/109472474
2、下载 zookeeper:
zookeeper官网链接:https://zookeeper.apache.org/releases.html#download
复制链接使用 wget 指令下载:
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
安装配置 zookeeper
1、解压zookeeper安装包
tar -zvxf apache-zookeeper-3.6.2-bin.tar.gz
2、cd到安装目录下的conf文件夹下,把zoo_sample.cfg文件改名为zoo.cfg,因为zookeeper默认加载的配置文件名是zoo.cfg
mv zoo_sample.cfg zoo.cfg
3、修改zoo.cfg配置文件,修改数据与日志存放目录,其中dataDir对应的目录要先创建
4、配置etc/profile文件,在文件后台添加zookeeper安装的目录,保存后source /etc/profile 重载配置文件
#打开配置文件
vi /etc/profile
#ZOOKEEPER_HOME
export ZOOKEEPER1_HOME=/lihw/software/zookeeper/zookeeper1
export ZOOKEEPER2_HOME=/lihw/software/zookeeper/zookeeper2
export ZOOKEEPER3_HOME=/lihw/software/zookeeper/zookeeper3
export PATH=$PATH:${ZOOKEEPER_HOME1}/bin:${ZOOKEEPER_HOME2}/bin:${ZOOKEEPER_HOME3}/bin
5、进入安装目录下的 bin
文件夹下,使用如下如下命令操作zookeeper:
(1) 对zookeeper服务端的操作
# 启动zookeeper后台服务:
./zkServer.sh start
# 关闭zookeeper后台服务:
./zkServer.sh stop
# 重启zookeeper后台服务:
./zkServer.sh restart
# 查看zookeeper后台服务运行状态:
./zkServer.sh status
(2) 对zookeeper客户端的操作
#启动zookeeper客户端
./zkCli.sh
zookeeper 集群的配置
1、clientPort不能相同
2、在每个dataDir对应的文件夹下建立 myid 文件并 输入:1,2,3.会根据 myid 重新选举leader
3、配置集群,注意开放通信的端口
/*
server.A=B:C:D
A:指的是服务器id,即myid
B:ip地址
C:数据通信交互端口
D:follow之间选取leader的通信端口
*/
// ip为0.0.0.0 是在同一台服务器中配置集群才能成功,不是公网ip
server.1=0.0.0.0:2888:3888
server.2=0.0.0.0:2889:3889
server.3=0.0.0.0:2890:3890
Zookeeper 集群完整配置(zoo.cfg)
# zoo.cfg配置文件参考
# https://www.cnblogs.com/likui360/p/5985588.html
# zookeeper 定义的基准时间间隔,单位:毫秒
tickTime=2000
# 初始同步阶段可以使用的时间:Follower 在启动过程中会从 Leader 中同步最新数据,
# Leader允许在 initLimit 时间内完成,根据同步数据量大小来确定初始化时间
initLimit=10
# Leader 与 Follower 通信响应时间,例如向 Follower 发送心跳包的响应时间,
# 如果 Leader 发出心跳包在syncLimit之后,
# 还没有从 Follower 那里收到响应,那么就认为这个F已经不在线了。
# 注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。
syncLimit=5
# 存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。
# 数据文件夹
dataDir=/lihw/software/zookeeper/zookeeper/data
# 日志文件夹
dataLogDir=/lihw/software/zookeeper/zookeeper/logs
# 客户端连接 zookeeper server的端口,即对外服务端口,一般设置为:2181。配置集群时需要配置不同的端口号
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 默认服务端端口为:8080
admin.serverPort=8888
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
# 配置集群。注意:ip为0.0.0.0 是在同一台服务器中配置集群才能成功,不是公网ip
# server.A=B:C:D
# A:指的是服务器id,即myid
# B:ip地址
# C:数据通信交互端口
# D:follow之间选取leader的通信端口
server.1=0.0.0.0:2888:3888
server.2=0.0.0.0:2889:3889
server.3=0.0.0.0:2890:3890