0、说明:本篇是基于DolphinScheduler 3.1.3升级到3.1.4版本的升级。
背景:在使用DolphinScheduler 3.1.3版本的过程中发现前端部分页面有显示时间差的问题,具体如下;
其他部分显示的时间都是和本地时间一致的,只有任务实例的提交时间、开始时间、结束时间部分和本地的时间相差13个小时。通过更改页面的时区无法实现时间的正常显示;
此时官网已经发布了3.1.4最新版本,且修复了一些已知的bug;于是决定升级到最新版本,看是否能解决此问题;
最新版本修复bug
https://github.com/apache/dolphinscheduler/releases/tag/3.1.4
升级准备:
1、下载最新的二进制安装包,或者通过最新的源码编译;
下载地址:https://dolphinscheduler.apache.org/zh-cn/download/3.1.4
2、DolphinScheduler 元数据备份
DolphinScheduler 在版本的改动上是有一些不向前兼容的更改,如果升级中版本的跨越涉及到,需要做对应的调整;
具体的说明可以参考官网的说明:https://dolphinscheduler.apache.org/zh-cn/docs/3.1.4/guide/upgrade/incompatible
升级过程中都会有升级失败的风险,所以如果想在升级失败的状态下回滚,就需要把存储的元数据做备份,这里是以mysql的数据备份为例,其他的请结合数据库的具体情况来定;
#备份mysql整个数据库的数据mysqldump -h${host} -u${username} -p${password} ${database_name} > ${backup_dir}/${database_name}.sql |
3、修改新版本的配置
解压最新的安装到到特定的目录
tar -zxvf apache-dolphinscheduler-3.1.4-bin.tar.gz -C /home/dolphin3 |
编辑对应的配置文件,这里涉及的到的配置文件包含下面几项,具体的内容参考《1、Dolphin3 安装篇》;
- install_env.sh 一键部署工具依赖的配置,工具将依赖此配置来部署集群的服务节点;
- dolphinscheduler_env.sh 服务在启动运行中依赖的配置环境;
- common.properties 配置文件在每个服务组件都有用到,这里没有通过统一的配置文件进行分发,需要我们分别手动配置;
- alert-server/conf/common.properties
- api-server/conf/common.properties
- master-server/conf/common.properties
- worker-server/conf/common.properties
说明:这里只有一处是需要修改的,就是新版本的安装目录的配置要和旧版本的安装目录不相同,具体更改如下;
cat /home/dolphin3/apache-dolphinscheduler-3.1.4-bin/bin/env/dolphinscheduler_env.sh
4、更新数据库
执行数据库的升级,需要保证“3”步骤中dolphinscheduler_env.sh 文件中关于数据库链接的配置和老版本的完全一致;
另外需要下载对应数据库的驱动程序包到./tools/libs 目录下;
使用的是mysql的话,可以直接下载mysql-connector-java-8.0.16.jar 使用;
同时也需要把mysql-connector-java-8.0.16.jar拷贝到其他模块的lib目录下;
cd /home/dolphin3/apache-dolphinscheduler-3.1.4-bincp mysql-connector-java-8.0.16.jar alert-server/libs/cp mysql-connector-java-8.0.16.jar api-server/libs/cp mysql-connector-java-8.0.16.jar worker-server/libs/cp mysql-connector-java-8.0.16.jar master-server/libs/ |
执行数据库升级脚本
注意:在执行这个步骤就需要把老集群完全停掉了;
cd /home/dolphin3/apache-dolphinscheduler-3.1.4-binsh ./tools/bin/upgrade-schema.sh |
5、启用最新版本的服务
cd /home/dolphin3/apache-dolphinscheduler-3.1.4-bin/binsh install.sh |
等待脚本执行完成,然后检查所有的服务状态;
cd /home/dolphin3/apache-dolphinscheduler-3.1.4-bin/binsh status-all.sh |
6、验证新版本功能
登录web页面,选定时区,再次执行任务就可以正常显示时间了。
总结:整体的升级过程不算很复杂,只需要在中间的配置过程中保证配置上和老集群保持一致。