在 ubuntu 24.04 中,通过二进制方式部署 zookeeper 集群
系统环境
服务 | 版本 | ip地址 | 主机名 | 系统版本 | 内核版本 | myid | 备注 |
---|---|---|---|---|---|---|---|
ZooKeeper | v3.8.4 | 192.168.3.137 | vm007-ubuntu2404 | Ubuntu 24.04 LTS | 6.8.0-31-generic | 1 | - |
ZooKeeper | v3.8.4 | 192.168.3.136 | vm006-ubuntu2404 | Ubuntu 24.04 LTS | 6.8.0-31-generic | 2 | - |
ZooKeeper | v3.8.4 | 192.168.3.135 | vm005-ubuntu2404 | Ubuntu 24.04 LTS | 6.8.0-31-generic | 3 | - |
Zookeeper 简介
ZooKeeper 是一个开源的分布式协调服务,旨在为分布式应用程序提供高性能、高可用性和一致性的服务。以下是 ZooKeeper 的一些关键特点和用途:
分布式协调:ZooKeeper 提供了一个可靠的协调服务,用于在分布式系统中实现诸如选举、配置管理、命名服务、分布式锁等功能。
高性能:ZooKeeper 是针对读取操作进行优化的,具有低延迟和高吞吐量,适用于需要快速响应的分布式应用程序。
一致性:ZooKeeper 提供了强一致性的数据模型,确保在分布式环境中对数据的读取和写入操作是一致的。
可靠性:ZooKeeper 使用多数派选举算法来保证服务的可用性和容错性,即使在部分节点故障的情况下仍能正常运行。
轻量级:ZooKeeper 的设计简单轻量,适用于部署在各种环境中,不会对系统性能产生过大的负担。
开源:ZooKeeper 是一个开源项目,由 Apache 软件基金会进行维护和发展,用户可以免费使用和定制。
应用场景:ZooKeeper 在分布式系统中被广泛应用,例如用于协调分布式数据库、分布式消息队列、分布式计算等系统。
总的来说,ZooKeeper 是一个可靠、高性能的分布式协调服务,为分布式应用程序提供了一种简单而强大的方式来实现一致性和协调。
zoookeeper 集群安装配置
Zookeeper 安装
1.从 zoookeeper 官网下载 zookeeper 二进制压缩包到服务器的 /usr/local/src/
目录下:
1 | $ sudo wget -O /usr/local/src/apache-zookeeper-3.8.4-bin.tar.gz https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz |
2.原地解压:
1 | $ sudo tar -zxf /usr/local/src/apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/src/ |
3.将解压出来的 zookeeper 目录移动到 /usr/local/
目录下并重命名为 zookeeper
:
1 | $ sudo mv /usr/local/src/apache-zookeeper-3.8.4-bin /usr/local/zookeeper |
zookeeper 配置
1.创建 zookeeper 数据存放目录:
1 | $ sudo mkdir -p /data/zookeeper/data |
2.将 zookeeper 安装目录和数据存放目录所属主和组都修改为当前用户:
1 | $ sudo chown -R ${USER}:${USER} /usr/local/zookeeper/ /data/zookeeper |
3.为每个节点指定 唯一ID 号,且必须存在在配置文件 zoo.cfg 中指定的 dataDir 目录下的 myid 文件中
节点:192.168.3.137
1 | $ echo 1 > /data/zookeeper/data/myid |
节点:192.168.3.136
1 | $ echo 2 > /data/zookeeper/data/myid |
节点:192.168.3.135
1 | $ echo 3 > /data/zookeeper/data/myid |
注意:切记修改其它节点的 myid 时,一定要与 zoo.cfg 中的 server.n 这里的 n 对应
4.复制 zookeeper 配置模板文件 zoo_sample.cfg 为 zoo.cfg
:
1 | $ cd /usr/local/zookeeper/ && cp conf/zoo_sample.cfg conf/zoo.cfg |
5.重新配置 zookeeper,内容如下:
1 | $ cat << EOF > /usr/local/zookeeper/conf/zoo.cfg |
zookeeper 启动
1.在 /lib/systemd/system/
目录下新建 zookeeper 启动脚本文件 zookeeper.service
, 内容为:
1 | $ sudo bash -c "cat << EOF >/lib/systemd/system/zookeeper.service |
2.执行命令 systemctl daemon-reload
加载 zookeeper 启动脚本:
1 | $ sudo systemctl daemon-reload |
3.启动每个节点上的 zookeeper 服务并将其设置为开机启动:
1 | $ sudo systemctl enable --now zookeeper.service |
4.执行命令 systemctl status zookeeper.service --no-pager
查看 zookeeper 启动状态
节点状态
节点:192.168.3.137
1 | $ cd /usr/local/zookeeper && ./bin/zkServer.sh status |
节点:192.168.3.136:
1 | $ cd /usr/local/zookeeper && ./bin/zkServer.sh status |
节点:192.168.3.135:
1 | $ cd /usr/local/zookeeper && ./bin/zkServer.sh status |