【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/
六、后续操作建议
- 重启相关服务:升级完成后需重启 ZooKeeper 服务及依赖其通信的组件(如 HDFS、YARN、DolphinScheduler 等)。
- 兼容性验证:确保新版本 ZooKeeper 能正常启动,并通过
zkCli.sh
等工具验证连接。 - 备份回退方案:保留旧版本 jar 及 lib 文件备份,以便出现异常时回滚。