本篇是基于 Apache DolphinScheduler 3.1.3到3.1.4版本的升级。在使用 Apache DolphinScheduler 3.1.3版本的过程中,发现前端部分页面有显示时间差的问题,具体如下:
其他部分显示的时间都是和本地时间一致的,只有任务实例的提交时间、开始时间、结束时间部分和本地的时间相差13个小时。
通过更改页面的时区无法实现时间的正常显示;
此时官网已经发布了3.1.4最新版本,且修复了一些已知的bug;于是我决定升级到最新版本,看是否能解决此问题;
最新版本修复bug
https://github.com/apache/dolphinscheduler/releases/tag/3.1.4
升级准备
01
下载最新的安装包 or 编译最新的源码
下载地址:https://dolphinscheduler.apache.org/zh-cn/download/3.1.4
02
DolphinScheduler 元数据备份
Apache 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 |
03
修改新版本的配置
解压最新的安装到到特定的目录
tar -zxvf apache-dolphinscheduler-3.1.4-bin.tar.gz -C /home/dolphin3
编辑对应的配置文件,这里涉及到的配置文件包含下面几项,具体的内容参考
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
04
更新数据库
执行数据库的升级,需要保证“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 |
05
启用最新版本的服务
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 |
06
验证新版本功能
登录 Web 页面,选定时区,再次执行任务就可以正常显示时间了。
07
总结
整体的升级过程不算很复杂,只需要在中间的配置过程中保证配置上和老集群保持一致即可。