当前位置: 首页 > news >正文

Linux环境下部署Zookeeper3.9.5(最新版)集群部署

官网地址:Apache ZooKeeper

最新版本:3.9.5 发布时间6 Mar, 2026

软件下载地址

Apache Download Mirrors

1、解压

cd /usr/local/soft/ tar -zxvf apache-zookeeper-3.9.5-bin.tar.gz

2、创建数据文件和目录文件

在zookeeper的跟目录下创建两个文件夹data和log

cd /usr/local/soft/apache-zookeeper-3.9.5-bin/ mkdir data mkdir log

3、拷贝配置文件

cd /usr/local/soft/apache-zookeeper-3.9.5-bin/conf/ cp zoo_sample.cfg zoo.cfg

配置文件更改

# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/usr/local/soft/apache-zookeeper-3.9.5-bin/data dataLogDir=/usr/local/soft/apache-zookeeper-3.9.5-bin/log # the port at which the clients will connect 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. # # https://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 server.1=node11:2888:3888 server.2=node12:2888:3888 server.3=node13:2888:3888 ## Metrics Providers # # https://prometheus.io Metrics Exporter #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider #metricsProvider.httpHost=0.0.0.0 #metricsProvider.httpPort=7000 #metricsProvider.exportJvmInfo=true

4、创建服务器myid

在data目录下创建一个myid的文件,里面的值可以给个任意的值,但要和上述服务起server.x对应

cd /usr/local/soft/apache-zookeeper-3.9.5-bin/data/ touch myid

内容添加1

集群系统环境变量添加:vi /etc/profile

export ZOOKEEPER_HOME=/usr/local/soft/apache-zookeeper-3.9.5-bin export PATH=$PATH:$ZOOKEEPER_HOME/bin

保存系统环境变量:source /etc/profile

5、集群拷贝

拷贝文件

scp -r /usr/local/soft/apache-zookeeper-3.9.5-bin root@node12:/usr/local/soft/apache-zookeeper-3.9.5-bin scp -r /usr/local/soft/apache-zookeeper-3.9.5-bin root@node13:/usr/local/soft/apache-zookeeper-3.9.5-bin

拷贝环境变量

scp /etc/profile root@node12:/etc/profile scp /etc/profile root@node13:/etc/profile

6、集群myid更改

进入到每个节点,修改/usr/local/soft/apache-zookeeper-3.9.5-bin/data/myid值

vi /usr/local/soft/apache-zookeeper-3.9.5-bin/data/myid

其中node12节点中myid文件内容改成2

其中node13节点中myid文件内容改成3

并执行

source /etc/profile

关闭集群防火墙

7、集群启动(推荐8)

进入到每个节点启动

cd /usr/local/soft/apache-zookeeper-3.9.5-bin bin/zkServer.sh start bin/zkServer.sh status

8、集群设置脚本启动

cd /usr/local/soft/apache-zookeeper-3.9.5-bin/bin/

执行文件创建及授权

创建文件

touch zkStart.sh touch zkStop.sh touch zkStatus.sh

授权

chmod +x zkStart.sh chmod +x zkStop.sh chmod +x zkStatus.sh

zkStart.sh中添加

#!/bin/bash echo "zookeeper start 11,12,13..." ssh node11 "source /etc/profile;zkServer.sh start" ssh node12 "source /etc/profile;zkServer.sh start" ssh node13 "source /etc/profile;zkServer.sh start"

zkStop.sh中添加

#!/bin/bash echo "zookeeper start 11,12,13..." ssh node11 "source /etc/profile;zkServer.sh stop" ssh node12 "source /etc/profile;zkServer.sh stop" ssh node13 "source /etc/profile;zkServer.sh stop"

zkStatus.sh中添加

#!/bin/bash echo "zookeeper start 11,12,13..." ssh node11 "source /etc/profile;zkServer.sh status" ssh node12 "source /etc/profile;zkServer.sh status" ssh node13 "source /etc/profile;zkServer.sh status"

9、启动集群

集群启动:zkStart.sh

集群关闭:zkStop.sh

集群状态查看:zkStatus.sh

验证集群启动情况

注意启动的时候出现Client SSL: false.这并不是错误。可以忽略

在 ZooKeeper 中,启动时看到 "Client SSL: false" 的信息,意味着 ZooKeeper 服务器没有启用客户端 SSL/TLS 加密。这意味着客户端与 ZooKeeper 服务器之间的通信不是加密的,这可能会带来安全风险,尤其是在生产环境中。学习阶段可以不用配置,如果配置了会导致后续连接复杂,不建议配置,如果想配置可参考本文FAQ 问题2

10、zkCli连接验证

zkCli.sh -server 192.168.1.11:2181

FAQ

1、-bash: /usr/local/soft/apache-zookeeper-3.9.5-bin/bin/zkStop.sh: /bin/bash^M: bad interpreter: No such file or directory

sudo yum install dos2unix cd /usr/local/soft/apache-zookeeper-3.9.5-bin/bin/ dos2unix zkStart.sh dos2unix zkStop.sh dos2unix zkStatus.sh

2、启动脚本被占用

/bin/bash: bad interpreter: Text file busy

解决办法:

fuser 命令名称

找到进程号,kill查杀

3、Client SSL: false解析

在 ZooKeeper 中,启动时看到 "Client SSL: false" 的信息,意味着 ZooKeeper 服务器没有启用客户端 SSL/TLS 加密。这意味着客户端与 ZooKeeper 服务器之间的通信不是加密的,这可能会带来安全风险,尤其是在生产环境中。

如果你希望启用客户端 SSL/TLS 加密来增强安全性,你需要进行以下几步操作(初学者不建议操作):

具体可参照:zookeeper开启ssl_清晨的技术博客_51CTO博客

  1. 生成密钥库和信任库
    你需要生成一个 Java 密钥库(keystore)来存储服务器的私钥和证书,以及一个信任库(truststore)来存储客户端信任的 CA 证书。这些证书可以是自签名的,也可以是由受信任的证书颁发机构(CA)签发的。

  2. 配置 ZooKeeper 服务器
    在 ZooKeeper 的配置文件(通常是zoo.cfg)中,你需要设置几个属性来启用 SSL。这些属性包括secureClientPort(一个用于 SSL/TLS 通信的端口号,通常是不同于非加密通信的端口),ssl.keystore.location(密钥库的路径),ssl.keystore.password(访问密钥库的密码),ssl.truststore.location(信任库的路径),以及ssl.truststore.password(访问信任库的密码)。

secureClientPort=2182
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=keystore_password
ssl.truststore.location=/path/to/truststore.jks
ssl.truststore.password=truststore_password

http://www.jsqmd.com/news/1072752/

相关文章:

  • TVA在机电产品视觉检测的创新应用(13)
  • 怎么跟 AI 说话才能让它写出你要的代码——我和 Claude Code 的配合心法
  • HoRain云--Flutter状态管理全景指南2026
  • MAX API v1.0.2 界面重构、后台优化、安全加固
  • 浏览器跨域Cookie安全解决方案
  • 5G NR LDPC编译码
  • 告别重复造轮子:C#抽象机器人控制层,兼容ABB/安川/发那科
  • 政府采购不能要求本地机构?但可以这样要求!
  • 工作3年才敢说真话:90%的Java微服务项目,根本没必要用SpringCloud
  • 办公重复活自动干,OpenClaw 2.7.9 本地智能体真实使用体验
  • Python之stubsplit包语法、参数和实际应用案例
  • HarmonyOS 6 UIAbility跨设备连接详解(分布式软总线运用)
  • Kimi LeetCode 3347. 执行操作后元素的最高频率 II C语言实现
  • 第六章—18—数据容器的通用操作
  • HarmonyOS 6商城开发学习:平板竖屏下的底部“飞件“事故——用 layoutWeight 替掉 position 与 Stack 的响应式救火
  • 2026-06-23:合并靠近字符。用go语言,现有仅含小写字母的字符串s与整数k,规则说明如下: 1. 判定标准:同一字符串里,若两个相同字母的位置索引差值不超过k,这两个字符视作相邻靠近字符。 2
  • [C++]错误码与Try-catch
  • 【第十期】高级进阶篇:自动化与智能化 —— 如何用 Python 和 AI 辅助挖掘漏洞?
  • 项目实训(十一)| 学习路线模块:个性化学习路线生成
  • CAN↔CAN / CAN↔ETH转发到底怎么做?为什么说PduR是“所有通信流量的十字路口”?
  • Linux下的Codex辅助编程
  • 【Linux】进程控制(四)—— 手搓自主shell
  • 【Linux基础】Linux 必学基础指令:echo/cat/ 重定向 / 查找命令全解析
  • 线上Java服务凌晨3点告警,我靠这张排查流程图5分钟解决了故障
  • 阿里通义千问,8元叠加券,真的可以领到,真没有套路,真不用拉人头,实打实的,就是这么简单!
  • 代理IP为什么会被封?从访问行为看风控逻辑
  • 国内热门的AI智能体小程序哪家可靠
  • 信创业务技术全景解析:从项目实施到国密安全,一文读懂信创落地核心技术体系(PPT)
  • 第七章—01—函数的多返回值,02—函数多种参数使用形式
  • 《个人头像上传》二、Preferences用户首选项使用指南