Apache DolphinScheduler 逐步升级指南:1.3.6 至 3.2.2 一、整体步骤版本升级路线v1.3.6 - v2.0.0 - v2.0.9 - v3.0.0 - v3.1.8 - v3.2.2;下载各版本的二进制安装包https://archive.apache.org/dist/dolphinscheduler/3.1.8/apache-dolphinscheduler-3.1.8-bin.tar.gz创建各版本的数据库(mysql) dolphinscheduler_2_0_0、dolphinscheduler_2_0_9、dolphinscheduler_3_0_0、dolphinscheduler_3_1_0、dolphinscheduler_3_1_8、dolphinscheduler_3_2_2举例CREATE DATABASE dolphinscheduler_3_2_2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;解压各版本的安装包至路径./upgrade_dolphin修改数据库配置执行升级脚本参考文档知乎文档https://zhuanlan.zhihu.com/p/654601675官网文档https://dolphinscheduler.apache.org/zh-cn/docs/2.0.0/guide/upgrade官网看各版本文档本文档也写明了各个步骤的注意事项二、升级 v1.3.6 - v2.0.0dump 备份数据库原1.3.6版本的数据是dolphinschedulermysqldump -uroot -pmysql dolphinscheduler .mysql_bak/dolphinscheduler.sql导入数据将v1.3.6备份的数据库导入到库dolphinscheduler_2_0_0解压安装包tar -zxvf apache-dolphinscheduler-2.0.0-bin.tar.gz -C ./upgrade_dolphin/修改v2.0.0源码v1.3.6 升级 v2.0.0时task的定义从原有t_ds_process_definition表的process_definition_json字段的每个task拆分为新增t_ds_task_definition表的每一行需要修改源码的几处位置避免空指针异常报错举例共修改了4处增加了null值判断功能是拆分task、dependent依赖。实际过程中可能还会有其他报错根据升级脚本执行实际修改代码再重新打包即可举例修改后的代码UpgradeDao.java将打包后的 dao 文件放置到 lib 目录下即可附v2.0.0源代码、打包后的jarv2.0.0源代码Apache Download Mirrors打包后的jardolphinscheduler-dao-2.0.0.jar升级修改数据库配置进入apache-dolphinscheduler-2.0.0-bin目录修改conf/datasource.properties数据库配置为dolphinscheduler_2_0_0上传mysql-connector-java-8.0.16.jar到lib下执行升级脚本sh script/upgrade-dolphinscheduler.sh注意看过程中的报错成功后查看t_ds_version表中数据版本变成 2.0.0完成升级三、升级 v2.0.0 - v2.0.9dump 备份数据库升级后v2.0.0版本的数据dolphinscheduler_2_0_0mysqldump -uroot -pmysql dolphinscheduler_2_0_0 .mysql_bak/dolphinscheduler_2_0_0.sql导入数据将v2.0.0备份的数据库导入到库dolphinscheduler_2_0_9解压安装包tar -zxvf apache-dolphinscheduler-2.0.9-bin.tar.gz -C ./upgrade_dolphin/升级修改数据库配置进入apache-dolphinscheduler-2.0.9-bin目录修改conf/config/install_config.conf数据库配置为dolphinscheduler_2_0_9上传mysql-connector-java-8.0.16.jar到lib下执行升级脚本sh script/upgrade-dolphinscheduler.sh注意看过程中的报错成功后查看 t_ds_version 表中数据版本变成 2.0.9完成升级四、升级 v2.0.9 - v3.0.0dump 备份数据库升级后v2.0.9版本的数据dolphinscheduler_2_0_9mysqldump -uroot -pmysql dolphinscheduler_2_0_9 .mysql_bak/dolphinscheduler_2_0_9.sql导入数据将v2.0.9备份的数据库导入到库dolphinscheduler_3_0_0解压安装包tar -zxvf apache-dolphinscheduler-3.0.0-bin.tar.gz -C ./upgrade_dolphin/升级修改数据库配置进入apache-dolphinscheduler-3.0.0-bin目录修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_0_0上传mysql-connector-java-8.0.16.jar到lib下修改数据库脚本移除添加alert_type字段的语句tools/sql/sql/upgrade/3.0.0_schema/mysql/dolphinscheduler_ddl.sql执行升级脚本sh tools/bin/upgrade-schema.sh注意看过程中的报错成功后查看 t_ds_version 表中数据版本变成 3.0.0完成升级五、升级 v3.0.0 - v3.1.0dump 备份数据库升级后v3.0.0版本的数据dolphinscheduler_3_0_0mysqldump -uroot -pmysql dolphinscheduler_3_0_0 .mysql_bak/dolphinscheduler_3_0_0.sql导入数据将v3.0.0备份的数据库导入到库dolphinscheduler_3_1_0解压安装包tar -zxvf apache-dolphinscheduler-3.1.0-bin.tar.gz -C ./upgrade_dolphin/升级修改数据库配置进入apache-dolphinscheduler-3.1.0-bin目录修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_1_0上传mysql-connector-java-8.0.16.jar到lib下修改数据库脚本移除添加other_params_json字段的语句tools/sql/sql/upgrade/3.1.0_schema/mysql/dolphinscheduler_ddl.sql执行升级脚本sh tools/bin/upgrade-schema.sh注意看过程中的报错成功后查看t_ds_version表中数据版本变成 3.1.0完成升级六 升级 v3.1.0 - v3.1.8dump 备份数据库升级后v3.1.0版本的数据dolphinscheduler_3_1_0mysqldump -uroot -pmysql dolphinscheduler_3_1_0 .mysql_bak/dolphinscheduler_3_1_0.sql导入数据将v3.1.0备份的数据库导入到库dolphinscheduler_3_1_8解压安装包tar -zxvf apache-dolphinscheduler-3.1.8-bin.tar.gz -C ./upgrade_dolphin/升级修改数据库配置进入apache-dolphinscheduler-3.1.8-bin目录修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_1_8上传mysql-connector-java-8.0.16.jar到lib下执行升级脚本sh tools/bin/upgrade-schema.sh注意看过程中的报错成功后查看t_ds_version表中数据版本变成 3.1.8;完成升级七、升级 v3.1.8 - v3.2.2dump 备份数据库升级后v3.1.8版本的数据dolphinscheduler_3_1_8mysqldump -uroot -pmysql dolphinscheduler_3_1_8 .mysql_bak/dolphinscheduler_3_1_8.sql导入数据将v3.1.8备份的数据库导入到库dolphinscheduler_3_2_2解压安装包tar -zxvf apache-dolphinscheduler-3.2.2-bin.tar.gz -C ./upgrade_dolphin/升级修改数据库配置进入apache-dolphinscheduler-3.2.2-bin目录修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_2_2上传mysql-connector-java-8.0.16.jar到lib下执行升级脚本sh tools/bin/upgrade-schema.sh注意看过程中的报错成功后查看t_ds_version表中数据版本变成 3.2.2;完成升级八、后续处理脚本依赖修改bin/env/dolphinscheduler_env.sh脚本datax、python等MySQL 类型数据源处理页面点击数据源修改会报错原因是t_ds_datasource表中的connection_params字段格式错误将原有的地址等信息按照v3.2.2版本的格式调整一下修改connection_params即可。附v3.2.2版本connection_params格式{user:root,password:doris,address:jdbc:mysql://127.0.0.1:9030,database:PROD_ODS,jdbcUrl:jdbc:mysql://127.0.0.1:9030/PROD_ODS,driverClassName:com.mysql.cj.jdbc.Driver,validationQuery:select 1}