【CDH】CDH环境中升级ZooKeeper的实战记录

CDH环境中升级ZooKeeper的实战记录

一、升级背景

在部署 DolphinScheduler 3.1.9 过程中,因 CDH 默认提供的 ZooKeeper 版本为 3.4.5-cdh6.3.2,过低导致 DolphinScheduler 无法正常安装。因此,需要将 ZooKeeper 升级至更高版本以满足兼容性要求。


二、下载 ZooKeeper 3.8.1 并解压

bash 复制代码
# 下载 ZooKeeper 安装包
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz

# 解压缩
tar -xzvf apache-zookeeper-3.8.1-bin.tar.gz

三、下载 Cloudera 兼容版本的 ZooKeeper Jar 包

mvnrepository.com 下载对应的 Cloudera 版本的 jar 文件。此处使用版本号为 3.8.1.7.1.9.0-387

将下载好的 jar 文件拷贝至每个 CDH 容器节点中:

bash 复制代码
# 上传至各容器
docker cp zookeeper-3.8.1.7.1.9.0-387.jar cm.hadoop:/opt
docker cp zookeeper-3.8.1.7.1.9.0-387.jar cdh01.hadoop:/opt
docker cp zookeeper-3.8.1.7.1.9.0-387.jar cdh02.hadoop:/opt

四、替换 CDH 默认的 ZooKeeper Jar 包

进入对应容器,并备份、替换旧版本 jar 文件:

bash 复制代码
# 切换至 CDH jar 包目录
cd /opt/cloudera/parcels/CDH/lib/zookeeper/lib/

# 备份旧版 jar 文件
cp zookeeper-3.4.5-cdh6.3.2.jar zookeeper-3.4.5-cdh6.3.2.jar.bak

# 替换为新版本 jar
cp /opt/zookeeper-3.8.1.7.1.9.0-387.jar ./zookeeper-3.4.5-cdh6.3.2.jar

注意:执行 cp 时如提示是否覆盖,输入 y 确认。


五、拷贝新版 ZooKeeper 的 lib 依赖包

将解压后的 apache-zookeeper-3.8.1-bin/lib 目录下的所有 jar 包复制至 CDH 的 lib/zookeeper/lib/ 目录中,用于替换旧依赖或补充缺失的依赖:

bash 复制代码
# 复制所有依赖文件到 CDH zookeeper lib 目录
cp /opt/apache-zookeeper-3.8.1-bin/lib/* /opt/cloudera/parcels/CDH/lib/zookeeper/lib/

六、后续操作建议

  1. 重启相关服务:升级完成后需重启 ZooKeeper 服务及依赖其通信的组件(如 HDFS、YARN、DolphinScheduler 等)。
  2. 兼容性验证 :确保新版本 ZooKeeper 能正常启动,并通过 zkCli.sh 等工具验证连接。
  3. 备份回退方案:保留旧版本 jar 及 lib 文件备份,以便出现异常时回滚。

相关推荐
虫小宝13 小时前
基于 OAuth2 与淘宝开放平台 API 的安全授权与数据同步机制设计
微服务·云原生·架构
小北方城市网1 天前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
林_学1 天前
预言:到2028年,本地开发环境会成为历史遗迹吗
云原生
老百姓懂点AI1 天前
[云原生] K8s Operator开发实战:智能体来了(西南总部)AI调度官的CRD设计与Controller实现
人工智能·云原生·kubernetes
小尘要自信1 天前
高级网络爬虫实战:动态渲染、反爬对抗与分布式架构
分布式·爬虫·架构
huizhixue-IT1 天前
收藏-Kubernetes怎么从私有仓库拉取镜像?(K8S系列)
云原生·容器·kubernetes
小程故事多_801 天前
深度解析Kafka重平衡,触发机制、执行流程与副本的核心关联
分布式·kafka
哪里不会点哪里.1 天前
什么是微服务?
微服务·云原生·架构
2501_948120151 天前
基于HBase的分布式列式存储
数据库·分布式·hbase
小北方城市网1 天前
MyBatis-Plus 生产级深度优化:从性能到安全的全维度方案
开发语言·redis·分布式·python·缓存·性能优化·mybatis