Apache DolphinScheduler 逐步升级指南:1.3.6 至 3.2.2

升级指南,码住!
178367850602077e66b23c7f6f455


点亮⭐️

https://github.com/apache/DolphinScheduler



点击蓝字 关注我们



一、整体步骤



  1. 版本升级路线:v1.3.6 -> v2.0.0 -> v2.0.9 -> v3.0.0 -> v3.1.8 -> v3.2.2;
  2. 下载各版本的二进制安装包:https://archive.apache.org/dist/dolphinscheduler/3.1.8/apache-dolphinscheduler-3.1.8-bin.tar.gz;
  3. 创建各版本的数据库(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;
  4. 解压各版本的安装包至路径:./upgrade_dolphin,修改数据库配置,执行升级脚本;
  5. 参考文档:
    1. 知乎文档:https://zhuanlan.zhihu.com/p/654601675
    2. 官网文档:https://dolphinscheduler.apache.org/zh-cn/docs/2.0.0/guide/upgrade
    3. 官网看各版本文档,本文档也写明了各个步骤的注意事项;

二、升级 v1.3.6 -> v2.0.0



  1. dump 备份数据库:原1.3.6版本的数据是dolphinscheduler:mysqldump -uroot -pmysql dolphinscheduler > .mysql_bak/dolphinscheduler.sql
  2. 导入数据:将v1.3.6备份的数据库,导入到库dolphinscheduler_2_0_0
  3. 解压安装包:tar -zxvf apache-dolphinscheduler-2.0.0-bin.tar.gz -C ./upgrade_dolphin/
  4. 修改v2.0.0源码:
    1. 报错举例:
    1. v1.3.6 升级 v2.0.0时,task的定义,从原有t_ds_process_definition表的process_definition_json字段的每个task拆分为新增t_ds_task_definition表的每一行
    2. 需要修改源码的几处位置,避免空指针异常:
1783678507997734b39a0b66caaed

共修改了4处,增加了null值判断,功能是拆分task、dependent依赖。

实际过程中可能还会有其他报错,根据升级脚本执行实际修改代码,再重新打包即可,举例:

17836785084772bac91643a044f2a
1783678508877800af6be82dce956
  1. 修改后的代码:UpgradeDao.java

将打包后的 dao 文件,放置到 lib 目录下即可,附v2.0.0源代码、打包后的jar:

  • v2.0.0源代码:Apache Download Mirrors
  • 打包后的jar:dolphinscheduler-dao-2.0.0.jar
  1. 升级:
  • 修改数据库配置:
    进入apache-dolphinscheduler-2.0.0-bin目录,修改conf/datasource.properties数据库配置为dolphinscheduler_2_0_0
  • 上传mysql-connector-java-8.0.16.jarlib下;
    • 执行升级脚本:sh script/upgrade-dolphinscheduler.sh,注意看过程中的报错;
    • 成功后查看 t_ds_version 表中数据版本变成 2.0.0
    • 完成升级;

三、升级 v2.0.0 -> v2.0.9



  1. dump 备份数据库:

升级后v2.0.0版本的数据dolphinscheduler_2_0_0:

mysqldump -uroot -pmysql dolphinscheduler_2_0_0 > .mysql_bak/dolphinscheduler_2_0_0.sql

  1. 导入数据:

将v2.0.0备份的数据库,导入到库dolphinscheduler_2_0_9;

  1. 解压安装包:

tar -zxvf apache-dolphinscheduler-2.0.9-bin.tar.gz -C ./upgrade_dolphin/

  1. 升级:
  • 修改数据库配置:
    进入apache-dolphinscheduler-2.0.9-bin目录,修改conf/config/install_config.conf数据库配置为dolphinscheduler_2_0_9
1783678509335d20626c162fb8650
  • 上传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



  1. dump 备份数据库:

升级后v2.0.9版本的数据dolphinscheduler_2_0_9:

mysqldump -uroot -pmysql dolphinscheduler_2_0_9 > .mysql_bak/dolphinscheduler_2_0_9.sql

  1. 导入数据:

将v2.0.9备份的数据库,导入到库dolphinscheduler_3_0_0;

  1. 解压安装包:

tar -zxvf apache-dolphinscheduler-3.0.0-bin.tar.gz -C ./upgrade_dolphin/

  1. 升级:
  • 修改数据库配置:
    进入apache-dolphinscheduler-3.0.0-bin目录,修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_0_0;
1783678509768cdb225a44f07780b
  • 上传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



  1. dump 备份数据库:

升级后v3.0.0版本的数据dolphinscheduler_3_0_0:

mysqldump -uroot -pmysql dolphinscheduler_3_0_0 > .mysql_bak/dolphinscheduler_3_0_0.sql

  1. 导入数据:

将v3.0.0备份的数据库,导入到库dolphinscheduler_3_1_0;

  1. 解压安装包:

tar -zxvf apache-dolphinscheduler-3.1.0-bin.tar.gz -C ./upgrade_dolphin/

  1. 升级:
  • 修改数据库配置:
    进入apache-dolphinscheduler-3.1.0-bin目录,修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_1_0
178367851022991758f7c0d2941ca
  • 上传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



  1. dump 备份数据库:

升级后v3.1.0版本的数据dolphinscheduler_3_1_0:

mysqldump -uroot -pmysql dolphinscheduler_3_1_0 > .mysql_bak/dolphinscheduler_3_1_0.sql

  1. 导入数据:

将v3.1.0备份的数据库,导入到库dolphinscheduler_3_1_8

  1. 解压安装包:

tar -zxvf apache-dolphinscheduler-3.1.8-bin.tar.gz -C ./upgrade_dolphin/

  1. 升级:
  • 修改数据库配置:

进入apache-dolphinscheduler-3.1.8-bin目录,修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_1_8

1783678510749bfeeaf5ad78a3556
  • 上传mysql-connector-java-8.0.16.jarlib下;
    • 执行升级脚本:sh tools/bin/upgrade-schema.sh,注意看过程中的报错;
    • 成功后查看 t_ds_version 表中数据版本变成 3.1.8;
    • 完成升级;

七、升级 v3.1.8 -> v3.2.2


  1. dump 备份数据库:

升级后v3.1.8版本的数据dolphinscheduler_3_1_8:

mysqldump -uroot -pmysql dolphinscheduler_3_1_8 > .mysql_bak/dolphinscheduler_3_1_8.sql

  1. 导入数据:

将v3.1.8备份的数据库,导入到库dolphinscheduler_3_2_2

  1. 解压安装包:

tar -zxvf apache-dolphinscheduler-3.2.2-bin.tar.gz -C ./upgrade_dolphin/

  1. 升级:
  • 修改数据库配置:
    进入apache-dolphinscheduler-3.2.2-bin目录,修改bin/env/dolphinscheduler_env.sh数据库配置为dolphinscheduler_3_2_2
1783678511202ecc9211f0bbc5d9a
  • 上传mysql-connector-java-8.0.16.jarlib下;
    • 执行升级脚本:sh tools/bin/upgrade-schema.sh,注意看过程中的报错;
    • 成功后查看 t_ds_version 表中数据版本变成 3.2.2;
    • 完成升级;

八、后续处理



  1. 脚本依赖

修改bin/env/dolphinscheduler_env.sh脚本,datax、python等:

1783678511685a25a7f9f2c49ee2c
  1. 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"}

原文链接:https://blog.csdn.net/weixin_41917987/article/details/154995318




END




1783678512108f496dea826c2f156



用户案例


DolphinScheduler Agent开源上线Cisco Webex天翼云Zoom网易邮箱 每日互动 惠生工程作业帮 博世智驾蔚来汽车 长城汽车集度长安汽车思科网讯食行生鲜联通医疗联想新网银行兴业证券唯品富邦消费金融 自如有赞伊利当贝大数据珍岛集团传智教育BigoYY直播 拈花云科太美医疗深圳某智能制造企业
1783678512108f496dea826c2f156



迁移实战


Azkaban Ooize(当贝迁移案例)airflow (有赞迁移案例)Air2phin(迁移工具)Airflow
1783678512108f496dea826c2f156



最新发版消息



Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
1783678512108f496dea826c2f156



加入社区


关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org(向邮箱发送任意内容,收到邮件后回复同意订阅即可)
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

‍代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler


17836785188848e04f33ce91bb9ea


1783678519345464bafe7d1de4080

你的好友小海豚拍了拍你

并请你帮她点一下“分享”