Apache DolphinScheduler 升级指南:从准备工作到完整流程详解
前言
Apache DolphinScheduler 作为一款优秀的分布式工作流任务调度系统,随着版本的迭代会带来性能优化、新功能增加等问题修复。本文将全面介绍 DolphinScheduler 的升级流程,帮助用户顺利完成版本升级。
升级前的准备工作
兼容性检查
在升级前必须仔细检查版本间的不兼容变更,这些变更可能导致现有功能异常。建议:
- 详细阅读官方发布说明中的不兼容变更部分
- 特别关注数据库表结构变更、API接口变更等核心改动
- 评估这些变更对现有工作流的影响
数据备份策略
数据备份是升级过程中最重要的环节,必须确保:
- 数据库备份:完整备份 DolphinScheduler 使用的数据库
- MySQL 可使用 mysqldump 工具
- PostgreSQL 可使用 pg_dump 工具
- 文件备份:备份安装目录下的重要配置文件
- 包括但不限于 install_env.sh、application.yaml 等
- 资源备份:备份资源中心的所有文件
新版本获取
获取新版本二进制包时需注意:
- 从官方渠道下载最新稳定版本
- 将安装包存放在与原安装目录不同的路径
- 建议先在新环境中测试升级流程
详细升级步骤
服务停止流程
停止服务是升级的第一步,需确保:
- 按部署方式停止所有服务
- 集群部署:使用
stop-all.sh
脚本 - 单机部署:停止所有相关进程
- 集群部署:使用
- 确认所有服务进程已完全退出
- 建议记录当前运行的版本号和服务状态
数据库升级操作
数据库升级是核心环节,以 MySQL 为例:
-
驱动准备:
- 下载对应版本的 MySQL JDBC 驱动
- 放置到指定目录(tools/libs)
-
环境变量配置:
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
- 执行升级脚本:
sh ./tools/bin/upgrade-schema.sh
注意事项:
- 其他数据库需相应调整配置
- 大型数据库建议在低峰期执行升级
- 升级前确保有足够的数据库连接资源
资源中心迁移(3.2.0+版本)
3.2.0 版本重构了资源中心,迁移时需注意:
- 指定目标租户执行迁移
sh ./tools/bin/migrate-resource.sh target_tenant
-
迁移结果:
- 原资源会移动到目标租户的
.migrate
目录下 - UDF 资源绑定信息会自动更新
- 原有目录结构会保留
- 原资源会移动到目标租户的
-
迁移后检查:
- 确认所有资源文件完整迁移
- 验证工作流是否能正确访问迁移后的资源
血缘关系升级
执行血缘数据迁移:
sh ./tools/bin/migrate-lineage.sh
迁移特点:
- 采用 upsert 操作,不会删除原有数据
- 数据迁移到新表
t_ds_process_task_lineage
- 如需清理旧数据需手动操作
服务升级与启动
-
配置文件更新:
- 根据部署方式更新 install_env.sh
- 对比新旧版本配置差异
- 保留自定义配置
-
服务启动:
sh ./bin/start-all.sh
- 启动后验证:
- 检查各服务日志是否有报错
- 验证核心功能是否正常
- 检查定时任务是否按预期执行
特别注意事项
Worker 分组变更处理
不同版本的 Worker 分组机制有重大变化:
版本差异:
- 1.3.1 之前:通过 UI 创建分组
- 1.3.1-2.0.0:通过配置文件指定分组
- 2.0.0 之后:恢复 UI 创建分组功能
升级策略:
- 查询原数据库
t_ds_worker_group
表 - 根据查询结果配置 workers 参数:
workers="ds1:service1,ds2:service2,ds3:service2"
多分组支持: 1.3.2+版本支持单 Worker 多分组:
workers="ds1:service1,ds1:service2"
升级后验证
完成升级后建议进行以下验证:
-
基础功能测试:
- 工作流创建与执行
- 定时调度功能
- 告警通知功能
-
数据完整性检查:
- 验证历史工作流实例数据
- 检查资源文件可访问性
- 确认血缘关系完整性
-
性能监控:
- 观察系统资源占用情况
- 监控关键指标是否正常
常见问题处理
-
升级失败回滚:
- 恢复数据库备份
- 回退到旧版本二进制
- 检查日志定位问题
-
资源访问异常:
- 检查资源迁移路径
- 验证文件权限设置
- 确认租户配置正确
-
Worker 不注册:
- 检查分组配置
- 验证网络连通性
- 查看 Worker 日志
结语
DolphinScheduler 的升级过程需要谨慎操作,特别是跨大版本的升级。建议在生产环境升级前,先在测试环境充分验证。升级后密切监控系统运行状态,确保所有功能正常运作。如遇问题,可参考官方文档或社区资源寻求帮助。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考