news 2026/2/7 6:49:31

【大数据环境安装指南】Zookeeper单机环境和集群环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【大数据环境安装指南】Zookeeper单机环境和集群环境搭建

文章目录

  • 前言
  • 一、Zookeeper简介
  • 二、部署前置条件
  • 三、单机环境搭建(开发 / 测试)
    • 3.1 创建数据 / 日志目录
    • 3.2 修改配置文件
    • 3.3 启动并验证单机 ZooKeeper
      • 3.3.1 启动服务
      • 3.3.2 检查状态
      • 3.3.3 客户端连接测试
      • 3.3.4 停止 / 重启服务
  • 四、集群环境搭建(生产用,3 节点示例)
    • 4.1 所有节点执行前置准备
    • 4.2 所有节点修改 zoo.cfg 配置
    • 4.3 每台节点创建 myid 文件(核心!)
    • 4.4 启动集群并验证
    • 4.5 集群停止 / 重启

前言

部署环境:

  • 操作系统:Centos 7、Rocky 9 、Kylin V11
  • Zookeeper版本:3.8.4
  • jdk版本:8

一、Zookeeper简介

Zookeeper 由 Apache 进行维护,是一个开源的分布式协调服务, 可以实现分布式系统中常见的发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。具有如下特性:

  • 顺序一致性:从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到 Zookeeper 中;
  • 原子性:所有事务请求的处理结果在整个集群中所有机器上都是一致的;不存在部分机器应用了该事务,而另一部分没有应用的情况;
  • 单一视图:所有客户端看到的服务端数据模型都是一致的;
  • 可靠性:一旦服务端成功应用了一个事务,则其引起的改变会一直保留,直到被另外一个事务所更改;
  • 实时性:一旦一个事务被成功应用后,Zookeeper 可以保证客户端立即可以读取到这个事务变更后的最新状态的数据。

二、部署前置条件

1、服务器已安装 JDK(ZooKeeper 依赖 Java,推荐 JDK 8)

java-version# 确认输出 1.8.x 版本

如未安装jdk,可参考详细安装教程:【大数据环境安装指南】 JDK安装

2、下载 ZooKeeper 安装包(推荐稳定版 3.8.x)

# 下载(也可手动下载上传到服务器)wgethttps://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz# 解压指定目录tar-zxvfapache-zookeeper-3.8.4-bin.tar.gz-C/usr/local/app/# 重命名(简化路径)mvapache-zookeeper-3.8.4-bin /usr/local/app/zookeeper

官方下载地址:https://archive.apache.org/dist/zookeeper/

3、集群环境额外要求

  • 至少 3 台服务器(奇数台,推荐 3/5 台),且服务器之间能互相 ping 通、无防火墙拦截 2181/2888/3888 端口;
  • 所有服务器的 JDK 版本一致,时间同步(可通过 ntpdate 同步时间)。

三、单机环境搭建(开发 / 测试)

3.1 创建数据 / 日志目录

# 创建数据存储目录和日志目录mkdir-p/usr/local/app/zookeeper/datamkdir-p/usr/local/app/zookeeper/logs

3.2 修改配置文件

ZooKeeper 的核心配置文件是 zoo.cfg,需从模板复制并修改:

# 进入配置目录cd/usr/local/app/zookeeper/conf# 复制模板配置cpzoo_sample.cfg zoo.cfg# 编辑配置文件vimzoo.cfg

修改后的核心配置如下(保留关键项,注释无关项):

# 1. 心跳间隔(毫秒),ZooKeeper 基本时间单位tickTime=2000# 2. 初始化连接时,客户端与服务器之间的心跳次数(tickTime * initLimit = 10秒)initLimit=5# 3. 集群环境下,Leader 与 Follower 之间的心跳超时时间(这里单机可保留)syncLimit=2# 4. 数据存储目录(必填,对应步骤1创建的目录)dataDir=/usr/local/app/zookeeper/data# 5. 日志存储目录(可选,建议配置,避免日志和数据混放)dataLogDir=/usr/local/app/zookeeper/logs# 6. 客户端连接端口(默认 2181,需确保未被占用)clientPort=2181# 7. 最大客户端连接数(默认不限,可注释)# maxClientCnxns=60

3.3 启动并验证单机 ZooKeeper

3.3.1 启动服务

# 进入 bin 目录cd/usr/local/app/zookeeper/bin# 启动 ZooKeeper(前台启动:zkServer.sh start;后台启动:zkServer.sh start-foreground)./zkServer.sh start

3.3.2 检查状态

./zkServer.sh status

3.3.3 客户端连接测试

# 本地连接 ZooKeeper./zkCli.sh-serverlocalhost:2181

连接成功后进入 ZooKeeper 命令行,执行简单操作验证:

# 创建节点create /test"hello zookeeper"# 读取节点数据get /test# 输出:hello zookeeper(表示正常)# 退出客户端quit

3.3.4 停止 / 重启服务

# 停止./zkServer.sh stop# 重启./zkServer.sh restart

四、集群环境搭建(生产用,3 节点示例)

以 3 台服务器为例(节点信息如下,需替换为你的实际 IP / 主机名):

节点IP 地址主机名(可选)
节点 1192.168.3.129node1
节点 2192.168.3.130node2
节点 3192.168.3.131node3

4.1 所有节点执行前置准备

1、每台节点都安装 JDK、解压 ZooKeeper 安装包(同单机环境);
2、每台节点创建数据 / 日志目录:

mkdir-p/usr/local/app/zookeeper/datamkdir-p/usr/local/app/zookeeper/logs

3、每台节点配置主机名映射(可选,方便集群通信):

# 编辑 /etc/hosts,添加以下内容(所有节点一致)192.168.3.129 node1192.168.3.130 node2192.168.3.131 node3

4、关闭防火墙 / 开放端口(所有节点):

# 临时关闭防火墙(测试用)systemctl stop firewalld# 永久开放端口(生产用)firewall-cmd --add-port=2181/tcp--permanent# 客户端连接端口firewall-cmd --add-port=2888/tcp--permanent# 集群节点通信端口firewall-cmd --add-port=3888/tcp--permanent# 选举端口firewall-cmd--reload

4.2 所有节点修改 zoo.cfg 配置

cd/usr/local/app/zookeeper/confcpzoo_sample.cfg zoo.cfgvimzoo.cfg

修改后的配置如下(所有节点一致):

tickTime=2000initLimit=10syncLimit=5# 数据/日志目录(所有节点一致)dataDir=/usr/local/app/zookeeper/datadataLogDir=/usr/local/app/zookeeper/logs# 客户端连接端口clientPort=2181# 集群节点配置(格式:server.编号=主机名:通信端口:选举端口)server.1=node1:2888:3888server.2=node2:2888:3888server.3=node3:2888:3888# 启用自动清理日志(可选,避免日志过大)autopurge.snapRetainCount=3autopurge.purgeInterval=1

4.3 每台节点创建 myid 文件(核心!)

myid 文件放在 dataDir 目录下,内容为节点的编号(对应 zoo.cfg 中 server.编号):

  • 节点 1(node1):
echo"1">/usr/local/app/zookeeper/data/myid
  • 节点 2(node2):
echo"2">/usr/local/app/zookeeper/data/myid
  • 节点 3(node3):
echo"3">/usr/local/app/zookeeper/data/myid

4.4 启动集群并验证

1、依次启动所有节点的 ZooKeeper

# 每台节点执行启动命令cd/usr/local/app/zookeeper/bin ./zkServer.sh start

2、检查每台节点的状态

./zkServer.sh status

正常结果

  • 其中一台节点显示 Mode: leader(主节点);
  • 另外两台显示 Mode: follower(从节点)。
    ❌ 若显示 Mode: standalone 或 Error contacting service:检查 myid 文件、zoo.cfg 配置、端口是否开放。

3、客户端连接集群测试

# 连接集群(指定任意节点即可)./zkCli.sh-servernode1:2181,node2:2181,node3:2181# 创建测试节点create /zk-cluster"hello zk cluster"# 读取节点数据get /zk-cluster# 输出:hello zk cluster(表示集群正常)

4、集群容错测试
停止 leader 节点,观察集群是否重新选举新 leader:

# 在 leader 节点执行停止命令./zkServer.sh stop# 在任意 follower 节点检查状态,会发现新的 leader 产生./zkServer.sh status

4.5 集群停止 / 重启

# 每台节点停止./zkServer.sh stop# 每台节点重启./zkServer.sh restart
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 6:23:36

MusicFree插件完全指南:重新定义你的音乐体验

你是否曾经为音乐资源分散在不同平台而烦恼?想要在一个应用中听遍全网音乐?MusicFree插件系统正是为此而生!本文将带你从零开始,掌握这个革命性音乐播放方案的所有奥秘。 【免费下载链接】MusicFreePlugins MusicFree播放插件 项…

作者头像 李华
网站建设 2026/2/5 14:29:55

Miniconda-Python3.11镜像支持Transformer类大模型运行

Miniconda-Python3.11镜像支持Transformer类大模型运行 在如今动辄上百亿参数的AI模型时代,一个稳定、可复现、易于迁移的开发环境,几乎和算法本身一样重要。你有没有遇到过这样的场景:本地训练好的模型,在同事机器上跑不起来&…

作者头像 李华
网站建设 2026/2/5 6:28:43

Anaconda配置PyTorch环境缓慢?Miniconda更快更稳

Anaconda配置PyTorch环境缓慢?Miniconda更快更稳 在深度学习项目开发中,你是否经历过这样的场景:刚拿到一台新的云服务器,迫不及待想跑起PyTorch训练脚本,结果在安装Anaconda时卡了十分钟,接着创建环境又花…

作者头像 李华
网站建设 2026/2/4 5:14:26

QQ音乐格式转换神器:快速解密qmcflac/qmc0/qmc3文件

QQ音乐格式转换神器:快速解密qmcflac/qmc0/qmc3文件 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 还在为Q…

作者头像 李华
网站建设 2026/2/7 6:41:51

LosslessCut无损视频剪辑工具终极配置指南

LosslessCut无损视频剪辑工具终极配置指南 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut LosslessCut是一款跨平台的无损视频剪辑工具,专为追求高效编辑的…

作者头像 李华
网站建设 2026/2/5 15:00:57

终极免费PDF工具集:Poppler-Windows完整使用指南

终极免费PDF工具集:Poppler-Windows完整使用指南 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为PDF文档处理而烦恼吗&#xff1…

作者头像 李华