zookeeper集群搭建

二维码
| Feb 01, 2021 | 原创

zookeeper 是使用 java 来运行的,所以需要依赖 JDK,所以安装 zookeeper 之前需要安装部署 JDK。截止目前,zookeeper 官方要求的JDK 版本至少是 jdk1.8+

ZooKeeper runs in Java, release 1.8 or greater (JDK 8 LTS, JDK 11 LTS, JDK 12 - Java 9 and 10 are not supported).

1. 机器要求

ZooKeeper在提供分布式锁等服务的时候需要过半数的节点可用。另外高可用的诉求来说节点的个数必须>1,所以ZooKeeper集群需要是奇数节点。例如3、5、7等等。官方文档建议集群节点数至少要3台以上

1.安装 JDK

这里我们安装的是 JDK11 版本,由于系统是 centos7 系,所以直接下载官方提供的 二进制rpm 包安装即可,在你需要部署zookeeper的每台机器都需要安装jdk

sudo yum install -y jdk-11.0.10_linux-x64_bin.rpm

2.安装zookeeper

下载zookeeper软件资源。

zookeeper 直接去官方下载最新的稳定版本即可,下载地址:https://zookeeper.apache.org/releases.html

下载完成后,解压压缩包并创建项目目录结构:

# 解压到/usr/local目录
tar -zxvf apache-zookeeper.*.tgz -C /usr/local/apache-zookeeper-3.6.2

# 创建项目数据和日志目录
mkdir -p /data/zookeeper/data /data/zookeeper/logs

配置环境变量

vim /etc/profile

# 增加如下内容
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.11
export PATH=$ZOOKEEPER_HOME/bin:$PATH

#使环境变量生效
source /etc/profile

#查看配置结果
echo $ZOOKEEPER_HOME

配置zookeeper

进入到zookeeper配置文件目录,添加如下配置:

cd $ZOOKEEPER_HOME/conf

cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

# 配置如下内容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper/data
dataLogDir=/zookeeper/logs
clientPort=2181
server.1=192.168.88.11:2888:3888
server.2=192.168.88.12:2888:3888
server.3=192.168.88.13:2888:3888

配置节点表示

每台机器分别配置如下节点id值:

zk01:

echo 1 > /data/zookeeper/data/myid

zk02:

echo 2 > /data/zookeeper/data/myid

zk03:

echo 3 > /data/zookeeper/data/myid

3. 启动zookeeper

cd $ZOOPEEPER_HOME/bin
sh zkServer.sh start

4. 测试集群

查看集群状态

cd $ZOOKEEPER_HOME/bin
sh zkServer.sh status

客户端连接测试

这里随机选其中一个节点作为客户端连接其他节点即可

#指定Server进行连接
sh $ZOOKEEPER_HOME/bin/zkCli.sh -server 192.168.88.13:2181

#正常连接后会进入ZooKeeper命令行,显示如下:
[zk: 192.168.88.13:2181(CONNECTED) 0]

# #查看ZooKeeper根
[zk: 192.168.88.13:2181(CONNECTED) 0] ls /
[zookeeper]

参考