Apache DolphinScheduler 版本升级不兼容变更详解
前言
Apache DolphinScheduler 作为一款优秀的分布式工作流任务调度系统,在版本迭代过程中会不断优化和改进功能。本文将详细梳理各版本间不兼容的变更内容,帮助用户在升级前充分了解可能带来的影响,做好升级准备工作。
开发版(dev)不兼容变更
1. 数据库驱动升级
MySQL 驱动版本从 8.0.16 升级至 8.0.33。这一变更意味着:
- 需要确保生产环境的 MySQL 服务版本与新驱动兼容
- 可能需要更新连接池配置参数
- 建议在测试环境先行验证数据库连接稳定性
2. 环境变量名称变更
PYTHON_HOME
改为PYTHON_LAUNCHER
DATAX_HOME
改为DATAX_LAUNCHER
影响范围:
- 所有使用这些环境变量的脚本和配置都需要相应更新
- 系统环境变量和容器环境变量都需要同步修改
3. SQL 任务变量匹配正则更新
SQL 任务中用于匹配变量的正则表达式进行了优化调整。这会影响:
- 原有 SQL 脚本中特殊格式的变量引用
- 自定义的 SQL 模板可能需要检查兼容性
4. Spark 任务变更
移除了 Spark 任务中的版本配置选项。这意味着:
- 系统将使用默认的 Spark 版本执行任务
- 如需特定版本支持,需要通过其他方式配置
5. Shell 执行器变更
默认的 Unix shell 执行器从 sh 改为 bash。需要注意:
- 确保所有工作节点都安装了 bash
- 检查现有 shell 脚本是否依赖 sh 特有语法
- 如需保持原行为,可显式指定使用 sh
6. 存储操作接口变更
移除了 StorageOperate 中 download() 方法的 deleteSource 参数。影响:
- 依赖此参数行为的自定义存储实现需要调整
- 下载操作将不再支持自动删除源文件功能
3.2.0 版本不兼容变更
资源中心接口变更
资源中心相关接口删除了 description 请求参数。这意味着:
- 通过 API 管理资源时不能再设置描述信息
- 前端界面可能需要相应调整
- 已有资源的描述信息不受影响,仍可查询
数据源接口变更
在以下接口中添加了必选字段 database:
- /datasources/tables
- /datasources/tableColumns
升级后需要:
- 确保所有调用这些接口的代码都提供了 database 参数
- 检查相关的前端页面是否已适配此变更
3.0.0 版本不兼容变更
工作流复制导入变更
复制和导入工作流时不再自动添加 'copy' 后缀。影响:
- 重复导入同名工作流时需要注意名称冲突
- 可能需要调整现有的工作流管理流程
SQL 分隔符变更
默认 SQL 段分隔符改为分号(;)。需要注意:
- 原有的多语句 SQL 脚本可能需要调整
- 自定义的分隔符配置需要检查兼容性
3.3.0 版本重大变更
1. 功能模块移除
- 移除了资源中心中的 udf-manage 功能
- 移除了任务插件中的 Pigeon 类型
- 完全移除了数据质量模块
应对措施:
- 如果依赖这些功能,需要寻找替代方案
- 检查现有工作流是否使用了被移除的插件类型
2. 术语统一
将代码中的 process 统一改为 workflow。影响:
- 自定义开发的扩展功能需要同步更新术语
- API 调用时需要注意术语变更
3. 废弃升级代码
废弃了从 1.x 至 2.x 的升级代码。这意味着:
- 直接从 1.x 升级到 3.3.0 将不再支持
- 需要先升级到 2.x 中间版本
4. 配置项变更
- 移除了 application.yaml 中的 registry-disconnect-strategy 配置
- worker 配置中移除了 exec-threads,改用 physical-task-config
- master 配置中移除了 master-async-task-executor-thread-pool-size,改用 logic-task-config
迁移建议:
- 仔细对照新旧配置文档
- 测试环境验证新配置项的有效性
5. 数据库变更
移除了 t_ds_worker_group 表中的 other_params_json 字段。需要:
- 检查是否有业务逻辑依赖此字段
- 确保数据库迁移脚本正确执行
6. 任务插件变更
移除了 Dynamic 类型任务插件。影响:
- 使用此插件的工作流需要重新设计
- 考虑使用其他插件类型替代
升级建议
- 全面评估:仔细阅读本文档,评估每个变更对现有系统的影响
- 测试验证:先在测试环境进行升级验证,确保关键功能正常
- 分步升级:对于大版本跨越,考虑分阶段升级
- 备份数据:升级前务必备份数据库和关键配置
- 文档更新:同步更新内部文档和运维手册
通过充分了解这些不兼容变更,用户可以更顺利地完成 Apache DolphinScheduler 的版本升级,享受新版本带来的改进和优化。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考