一、整体步骤
- 版本升级路线:v1.3.6 -> v2.0.0 -> v2.0.9 -> v3.0.0 -> v3.1.8 -> v3.2.2;
- 下载各版本的二进制安装包:archive.apache.org/dist/dolphi…
- 创建各版本的数据库(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,修改数据库配置,执行升级脚本; - 参考文档:
- 知乎文档:zhuanlan.zhihu.com/p/654601675
- 官网文档:dolphinscheduler.apache.org/zh-cn/docs/…
- 官网看各版本文档,本文档也写明了各个步骤的注意事项;
二、升级 v1.3.6 -> v2.0.0
- dump 备份数据库:原1.3.6版本的数据是dolphinscheduler:mysqldump -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表的每一行 - 需要修改源码的几处位置,避免空指针异常:
- 报错举例:
- v1.3.6 升级 v2.0.0时,task的定义,从原有
共修改了4处,增加了null值判断,功能是拆分task、dependent依赖。
实际过程中可能还会有其他报错,根据升级脚本执行实际修改代码,再重新打包即可,举例:
- 修改后的代码:
UpgradeDao.java
将打包后的 dao 文件,放置到 lib 目录下即可,附v2.0.0源代码、打包后的jar:
- v2.0.0源代码:Apache Download Mirrors
- 打包后的jar:dolphinscheduler-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.9
- dump 备份数据库:
升级后v2.0.0版本的数据dolphinscheduler_2_0_0:
mysqldump -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.0
- dump 备份数据库:
升级后v2.0.9版本的数据dolphinscheduler_2_0_9:
mysqldump -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.0
- dump 备份数据库:
升级后v3.0.0版本的数据dolphinscheduler_3_0_0:
mysqldump -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.8
- dump 备份数据库:
升级后v3.1.0版本的数据dolphinscheduler_3_1_0:
mysqldump -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.2
- dump 备份数据库:
升级后v3.1.8版本的数据dolphinscheduler_3_1_8:
mysqldump -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"}