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

ZooKeeper 3.9.2 集群安装指南

ZooKeeper 3.9.2 集群安装指南

    • 准备工作
      • 1.系统要求
      • 2.下载ZooKeeper
    • 集群配置
  • 集群服务器列表
    • 启动集群在所有节点上启动ZooKeeper
    • 验证集群
    • 可选配置
    • 常见问题解决

准备工作

1.系统要求

  • 至少3台服务器(推荐奇数台,如3、5、7)
  • Java 8或更高版本(运行java -version检查)
  • 服务器之间网络互通

2.下载ZooKeeper

wget https://downloads.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz
tar -xzf apache-zookeeper-3.9.2-bin.tar.gz
mv apache-zookeeper-3.9.2-bin /usr/local/zookeeper

集群配置

1.创建数据目录(在所有节点上执行)

mkdir -p /data/zookeeper

配置zoo.cfg(主配置文件)
编辑/usr/local/zookeeper/conf/zoo.cfg,内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181
admin.serverPort=8080

集群服务器列表

server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

说明:
node1, node2, node3 替换为实际IP或主机名

2888端口用于节点间通信,3888用于选举

创建myid文件(在每个节点上)
在每个节点的/data/zookeeper目录下创建myid文件,内容为对应的服务器ID:

节点1: echo 1 > /data/zookeeper/myid

节点2: echo 2 > /data/zookeeper/myid

节点3: echo 3 > /data/zookeeper/myid

启动集群在所有节点上启动ZooKeeper

/usr/local/zookeeper/bin/zkServer.sh start

检查状态

/usr/local/zookeeper/bin/zkServer.sh status

应该能看到一个leader和两个follower

验证集群

连接客户端

/usr/local/zookeeper/bin/zkCli.sh -server localhost:2181

创建测试节点

create /test "hello"
get /test

在其他节点验证数据同步

get /test

可选配置

日志配置
编辑/usr/local/zookeeper/conf/log4j.properties调整日志级别和输出

JVM调优
编辑/usr/local/zookeeper/bin/zkEnv.sh调整JVM参数:

export JVMFLAGS="-Xms2048m -Xmx2048m -XX:MaxPermSize=512m"

防火墙配置
确保开放以下端口:

firewall-cmd --permanent --add-port=2181/tcp
firewall-cmd --permanent --add-port=2888/tcp
firewall-cmd --permanent --add-port=3888/tcp
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

常见问题解决

1.无法选举Leader

  • 检查所有节点的myid文件是否正确

  • 检查防火墙设置

  • 检查网络连通性

2.数据不同步

  • 检查dataDir权限

  • 检查磁盘空间

3.连接问题

  • 检查客户端是否连接到正确的服务器

  • 检查ZooKeeper服务是否正常运行

完成以上步骤后,您应该已经成功部署了一个ZooKeeper 3.9.2集群。
如需沟通:lita2lz

http://www.lryc.cn/news/573182.html

相关文章:

  • 【LeetCode#第228题】汇总区间(简单题)
  • ad24智能pdf输出的装配图没有四个边角那里的圆孔
  • 1、自然语言处理任务全流程
  • `customRef` 在实战中的使用:防抖、计算属性缓存和异步数据获取
  • Duende Identity Server学习之一:认证服务器及一个Oidc/OAuth认证、用于Machine 2 Machine的客户端
  • 【C/C++】Gtest + GMock 简单使用示例
  • Android Studio 打 APK 包报错 Invalid keystore format 的解决方法
  • python web开发-Flask数据库集成
  • Solidity内部合约创建全解析:解锁Web3开发新姿势
  • 分布式锁 不同的拒绝策略 应用场景 业务上的思考
  • Docker简单介绍与使用以及下载对应镜像(项目前置)
  • AWS RDS/Aurora 开启 Database Insights 高级模式全攻略
  • C++11 std::thread 多线程编程详解
  • Python从入门到实战学习笔记(二)
  • 如何用 eBPF 实现 Kubernetes 网络可观测性?实战指南
  • PowerBI HtmlContent生成表格
  • Spring MVC异常处理机制
  • Java求职者面试指南:微服务技术与源码原理深度解析
  • 数据分析核心指标体系:从求和、计数到比较的全维度计算方法
  • 全面深入理解加法器架构:从全加器到并行前缀优化
  • 启动hardhat 项目,下载依赖的npm问题
  • GitHub Copilot快捷键
  • 【unitrix】 3.7 类型级加一计算(Add1.rs)
  • AI大模型学习之基础数学:微积分-AI大模型的数学引擎
  • Spring Boot的自动装配和自动配置
  • MySQL 数据库操作完整指南
  • ubuntu24.4 + ros2 jazzy 安装gazebo
  • vue3+arcgisAPI4案例:智慧林业资源监测分析平台(附源码下载)
  • C++ 的设计模式
  • 跟着AI学习C# Day29