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

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

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

一、升级背景

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


二、下载 ZooKeeper 3.8.1 并解压

# 下载 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 容器节点中:

# 上传至各容器
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 文件:

# 切换至 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/ 目录中,用于替换旧依赖或补充缺失的依赖:

# 复制所有依赖文件到 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 文件备份,以便出现异常时回滚。

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

相关文章:

  • 基于KMeans、AgglomerativeClustering、DBSCAN、PCA的聚类分析的区域经济差异研究
  • 【Linux知识】Linux Shell 脚本中的 `set -ex` 命令深度解析
  • 复现cacti的RCE(CVE-2022-46169)
  • Go 客户端玩转 ES|QL API 直连与 Mapping Helpers 实战详解
  • upload-labs靶场通关(1-12)
  • 服务器之光:Nginx--反向代理模块详解及演练
  • 图论:Bellman_ford算法
  • 《汇编语言:基于X86处理器》第10章 结构和宏(3)
  • 【WRF-Chem 实例1】namelist.input 详解- 模拟CO2
  • 鸿蒙Harmony-自定义List组件,解决List组件手势滑动点击卡住问题
  • 【图像噪点消除】——图像预处理(OpenCV)
  • 创建型设计模式-工厂方法模式和抽象工厂方法模式
  • 社区老人健康信息管理系统|基于springboot社区老人健康信息管理系统设计与实现(源码+数据库+文档)
  • Gartner发布CTEM指南:使用持续威胁暴露管理来减少网络攻击
  • 智能体安全与可信AI:防护机制与伦理考量
  • 利用 C# 实现 Word 文档多维度统计(字数、字符数、页数、段落数、行数)
  • macOS “Sploitlight“漏洞曝光:攻击者可窃取Apple Intelligence缓存数据
  • FreeRTOS在中断上下文中设置事件组,调度很慢的的解决方法
  • JavaWeb 入门:CSS 基础与实战详解(Java 开发者视角)
  • 如何在在NPM发布一个React组件
  • pycharm中安装pythonocc
  • 队列算法之【用队列实现栈】
  • 【Android】三种弹窗 Fragment弹窗管理
  • 人工智能技术革命:AI工具与大模型如何重塑开发者工作模式与行业格局
  • Sentinel实现限流和熔断降级
  • 四、Linux核心工具:Vim, 文件链接与SSH
  • 整车应用------后电驱总成
  • Java 大视界 -- Java 大数据在智能教育学习社区知识图谱构建与知识传播分析中的应用(370)
  • centos服务器安装minio
  • React 中获取当前路由信息