Apache DolphinScheduler 升级指南:从准备到注意事项全解析
前言
Apache DolphinScheduler 作为一款优秀的分布式工作流任务调度系统,在版本迭代过程中会不断引入新功能和改进。本文将全面讲解 DolphinScheduler 的升级流程,帮助用户顺利完成版本升级。
升级前的准备工作
检查不兼容变更
在升级前必须仔细查阅当前版本与目标版本之间的不兼容变更说明。这些变更可能导致现有功能无法正常工作,例如:
- API 接口变更
- 数据库结构调整
- 配置文件格式变化
- 功能行为变化
数据备份策略
强烈建议在执行升级前做好完整备份:
-
文件备份:
- 程序安装目录
- 资源文件目录
- 自定义插件和脚本
-
数据库备份:
- 执行完整的数据库导出
- 记录当前数据库版本
- 对于大型实例,考虑使用数据库专业备份工具
获取新版本安装包
从官方渠道下载最新版本的二进制分发包,建议:
- 将新版本放在与当前运行环境不同的目录
- 验证下载包的完整性(如校验MD5/SHA)
- 阅读新版本的发布说明
升级执行步骤
停止现有服务
根据部署方式停止所有 DolphinScheduler 服务:
- 集群部署:执行
sh ./script/stop-all.sh
- 单机部署:停止对应进程
- 容器化部署:停止相关容器
数据库升级
数据库升级是升级过程中最关键的一步:
-
环境变量配置(以MySQL为例):
export DATABASE=mysql export SPRING_PROFILES_ACTIVE=mysql export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false" export SPRING_DATASOURCE_USERNAME=your_username export SPRING_DATASOURCE_PASSWORD=your_password
-
驱动准备:
- 下载对应数据库驱动(如MySQL Connector/J)
- 放置到
./tools/libs
目录
-
执行升级脚本:
sh ./tools/bin/upgrade-schema.sh
注意:对于大型数据库,升级可能需要较长时间,建议在业务低峰期执行。
资源迁移(3.2.0+版本)
3.2.0版本重构了资源中心,需要进行资源迁移:
- 指定目标租户(如
abc
) - 执行迁移脚本:
sh ./tools/bin/migrate-resource.sh abc
迁移效果:
- 文件资源迁移到
/dolphinscheduler/abc/resources/.migrate/
- UDF资源迁移到
/dolphinscheduler/abc/udf/.migrate/
- 自动更新UDF函数绑定信息
血缘关系升级
执行血缘关系迁移脚本:
sh ./tools/bin/migrate-lineage.sh
迁移特点:
- 数据迁移到新表
t_ds_process_task_lineage
- 仅执行upsert操作,不删除旧数据
- 如需清理旧数据需手动执行
服务升级
-
配置文件更新:
- 根据部署方式(集群/伪集群)更新
bin/env/install_env.sh
- 特别注意新版本引入的配置项
- 根据部署方式(集群/伪集群)更新
-
启动服务:
sh ./bin/start-all.sh
-
验证:
- 检查各服务日志
- 验证核心功能
- 检查定时任务状态
特别注意事项
Worker Group 变更处理
不同版本的Worker Group机制有重大变化:
-
1.3.1及之前版本:
- 通过UI界面创建Worker Group
- 每个Worker只能属于一个组
-
1.3.1-2.0.0版本:
- 通过配置文件指定Worker Group
- 支持一个Worker属于多个组
-
2.0.0+版本:
- 恢复UI创建Worker Group功能
- 增强组管理能力
升级处理建议:
- 记录原
t_ds_worker_group
表数据 - 按格式更新
install_env.sh
中的workers配置 - 对于多组支持,使用逗号分隔
升级后检查清单
- 所有服务是否正常启动
- 工作流定义是否完整
- 定时任务是否正常触发
- 资源文件是否可访问
- 系统监控数据是否正常采集
- 报警功能是否正常工作
总结
DolphinScheduler 的升级过程需要谨慎操作,特别是数据库升级和资源迁移步骤。建议先在测试环境验证升级流程,确认无误后再在生产环境执行。升级后应进行全面功能验证,确保系统稳定运行。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考