在Linux搭建Zookeeper集群

发布时间 2023-04-05 18:16:41作者: 我有八千部下

前言

本文讲述在多台 Linux 服务器搭建 ZooKeeper 集群的具体步骤,共 4 个节点(1 主 2 从 1 观察者)。

ZooKeeper使用的端口:【2181】对 client 提供服务;【3888】选举 leader;【2888】集群内通讯。

准备工作

ZooKeeper需要1.7及以上版本的JDK,可以参考在 Linux安装JDK

给系统配置hosts简化后续配置,实际IP根据自己情况修改。

echo "追加hosts配置" > /dev/null
echo '
192.168.252.131 node1
192.168.252.132 node2
192.168.252.133 node3
192.168.252.134 node4' >> /etc/hosts

echo "使 hosts 配置生效" > /dev/null
/etc/init.d/network restart

部署步骤

除了在 myid 文件中需要指定不同的 ID 外,其他配置在每个服务器都是一样的。

下载、解压

echo "下载" > /dev/null
wget -P ~/soft/zookeeper https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

echo "解压到/opt/soft目录下" > /dev/null
tar -xf ~/soft/zookeeper/apache-zookeeper-3.7.0-bin.tar.gz  -C /opt/soft

echo "改个短名" > /dev/null
mv /opt/soft/apache-zookeeper-3.7.0-bin /opt/soft/zk3.7

配置环境变量

这样在任意位置可以使用ZK命令。

echo "追加ZOOKEEPER_HOME环境变量" > /dev/null
echo '
export ZOOKEEPER_HOME=/opt/soft/zk3.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile

echo "使环境变量生效" > /dev/null
source /etc/profile

配置 ZK

echo  "创建数据存储目录" > /dev/null
mkdir /var/lib/zk3.7

echo "复制配置模板" > /dev/null
cp /opt/soft/zk3.7/conf/zoo_sample.cfg /opt/soft/zk3.7/conf/zoo.cfg

echo "编辑配置" > /dev/null
vim /opt/soft/zk3.7/conf/zoo.cfg

修改如下配置

# 指定数据目录
dataDir=/var/lib/zk3.7

# 追加集群节点配置 server.[id]=host:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
server.4=node4:2888:3888:observer

创建 myid 文件并指定每个 zookeeper 服务 ID,这个ID对应上面server.[id]

echo 1 > /var/lib/zk3.7/myid

命令说明

zkServer.sh 是 ZK 服务端命令行脚本

# 查看帮助信息
zkServer.sh help

# 前台启动
zkServer.sh start-foreground

# 后台启动
zkServer.sh start

# 查看服务状态
zkServer.sh status

zkCli.sh 是客户端命令行脚本

# 查看帮助信息
zkCli.sh help
# 连接当前服务器 ZK 服务
zkCli.sh
# 连接指定
zkCli.sh -server node1:2181

测试

# 连接当前服务器 ZK 服务
zkCli.sh
# 创建 test 目录,设置值为 123
create /test "123"
# 获取 test 目录对应值
get /test
# 修改数据
set /test "abc"
# 删除数据
delete /test

参考链接

Apache ZooKeeper

Apache ZooKeeper releases

Linux安装JDK