DolphinScheduler跨版本升级1.3.8至3.0.1

2023-11-11

Refer

  • 遵循历史,依然要感谢各位在网上的输出!升级前还在考虑是否有可参考的文档呢,结果还真有大哥在做,给到了很多支持,感谢!

dolphinscheduler版本1.3跨版本升级到3.0
dolphinscheduler3.0.1官方文档(伪集群部署)
Apache DolphinScheduler v3.0.1 使用手册

  • 注:官网给的备注是集群部署参照伪集群部署

背景

  • 上次安装Dolphin的时候工具只更新到了2.0.3版本,而且更新时间较新,出于稳定性考虑选择了1.3.8版本,该版本对于流程的优化和调度任务的类型都较少(但大致是够用的)。Dolphin的更新迭代一直都很快速,所以其实3.X的版本新增了很多任务支持,包括对于任务的数据质量监控都是集成工具中比较亮眼的功能。所以在原本的基础上预期将1.3.8版本升级到3.X版本。
  • 主要更新的是MySQL,由1.X到3.X的数据变化还是很大的
  • 其余相关升级操作可以参考官方文档,也可以参考该文档,相对的我这里会给出一些我的问题的解决办法哈

基础环境

  1. dolphinscheduler2.0.0(两个版本都需要,有一些信息互补)
  2. dolphinscheduler3.0.1(两个版本都需要,有一些信息互补)
  3. MySQL8.0.16
  4. mysql-connector-java8.0.16(手动下载连接器后添加到master,api、,tools,worker的libs下)
  5. JDK1.8
  6. ZooKeeper3.4.7 (3.4.6+)
  7. 进程树分析:macOS安装pstree;Fedora/Red/Hat/CentOS/Ubuntu/Debian安装psmisc
  8. DolphinScheduler 本身不依赖 Hadoop、Hive、Spark,但如果你运行的任务需要依赖他们,就需要有对应的环境支持
192.168.0.1 192.168.0.2 192.168.0.3
master服务
worker服务
alertServer报警服务
后端api服务

依赖版本升级

  • 总体来说Dolphin这边的git项目拉下来在本地一般都不修改太多,依照自己的需求进行修改即可

修改pom.xml

// 3.0.1内含的POM文件中的基础组件版本,如果有版本区别,建议修改版本后重新打包部署
// 例如hadoop和hive的版本
// 注意:由于mysql-connector的版本在打包中要求的是8.0.16,建议下载8.0.16的驱动
    <properties>
		……
        <zookeeper.version>3.4.14</zookeeper.version>
        <spring.version>5.3.12</spring.version>
        <spring.boot.version>2.5.6</spring.boot.version>
        <java.version>1.8</java.version>
        ……
        <hadoop.version>2.7.3</hadoop.version>
        ……
        <mysql.connector.version>8.0.16</mysql.connector.version>
        ……
        <hive.jdbc.version>2.1.0</hive.jdbc.version>
        ……
    </properties>

版本变更后可以直接maven打包

mvn  -U clean package -Prelease -Dmaven.test.skip=true 

问题解决

  • 我个人的话在打包过程中出现了Strings.isNotEmpty报错没有对应的包,这种都比较好解决
  • 报错位置:src/main/java/org/apache/dolphinscheduler/tools/datasource/dao/ResourceDao.java
  • 报错解决:在dolphinscheduler-tools这个module的pom.xml中添加对应的依赖即可
        <dependency>
           <groupId>org.apache.directory.api</groupId>
           <artifactId>api-all</artifactId>
           <version>1.0.0-M20</version>
       </dependency>

MYSQL升级

1.文件替换

  • 通过3.0.1版本的升级文件夹可以看出每个版本的dolphin都对数据库进行了一些schema的修改,由上面引用的CSDN描述可以发现,2.0版本的和3.0版本中的对应2.0版本位置的配置文件是有区别的,所以进行替换,主要是一些字段的类型变化和增删
  • 位置:/apache-dolphinscheduler-3.0.1-bin/tools/sql/sql/upgrade
    在这里插入图片描述
  • 示例
    在这里插入图片描述
  • 命令
## 防止直接粘贴报错,我用了中文哈,记得修改对应位置为本地自己环境的路径
## 文件夹名称有区别也记得修改
cp 你自己的路径/apache-dolphinscheduler-2.0.0-bin/sql/upgrade/2.0.0_schema/mysql/do*  你自己的路径/apache-dolphinscheduler-3.0.1-bin/tools/sql/sql/upgrade/2.0.0_schema/mysql/

cp 你自己的路径/apache-dolphinscheduler-3.0.1-bin/tools/sql/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_dml.sql 你自己的路径/apache-dolphinscheduler-3.0.1-bin/tools/sql/sql/upgrade/2.0.1_schema/mysql/

2.修改表结构

  • 在下述的三个表中添加下述内容

t_ds_process_definition

# vim 你自己的路径/apache-dolphinscheduler-3.0.1-bin/tools/sql/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl.sql
# 找到t_ds_process_definition添加下面sql    
alter table t_ds_process_definition_log add `execution_type` tinyint(4) DEFAULT '0' COMMENT 'execution_type 0:parallel,1:serial wait,2:serial discard,3:serial priority';
alter table t_ds_process_definition add `execution_type` tinyint(4) DEFAULT '0' COMMENT 'execution_type 0:parallel,1:serial wait,2:serial discard,3:serial priority';

t_ds_alert

# vim 你自己的路径/apache-dolphinscheduler-3.0.1-bin/tools/sql/sql/upgrade/3.0.0_schema/mysql/dolphinscheduler_ddl.sql
# 注释原有t_ds_alert添加字段操作(原始数据结构中存在该字段)
--ALTER TABLE `t_ds_alert` ADD COLUMN `alert_type` int DEFAULT NULL COMMENT 'alert_type';
ALTER TABLE `t_ds_alert` change `alert_type` `alert_type` int DEFAULT NULL COMMENT 'alert_type';

t_ds_process_instance

#vim 你自己的路径/apache-dolphinscheduler-3.0.1-bin/tools/sql/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl.sql
alter table t_ds_process_instance add next_process_instance_id int(11) DEFAULT '0' COMMENT 'serial queue next processInstanceId';

3.时间参数修改

  • 这个我目前没有特意尝试
## 你自己的路径/apache-dolphinscheduler-3.0.1-bin/bin/env/dolphinscheduler_env.sh
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-GMT+8}
export SPRING_DATASOURCE_URL="jdbc:mysql://x.x.x.x:3306/dolphinscheduler3?&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8"

4.数据库升级

修改 ./bin/env/dolphinscheduler_env.sh 中的如下配置({user}{password}改成你数据库的用户名和密码),然后运行升级脚本
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}

执行数据库升级脚本:sh ./tools/bin/upgrade-schema.sh

DOLPHIN安装

  • 只需要在主节点配置,无需进行分发,在后续安装过程中会将对应信息scp到对应位置

zookeeper集群

  • zk集群的安装和启动,我就不赘述了,启动!
./bin/zkServer.sh start

创建用户

可以如官方文档所言,创建dolphinscheduler新用户,并配置免密,也可以使用本地环境中的符合条件的用户,我这里为了方便,直接使用了大数据集群的用户

# 创建用户需使用 root 登录
useradd dolphinscheduler
 # 添加密码
echo "dolphinscheduler" | passwd --stdin dolphinscheduler

# 登陆相关用户       
su  dolphinscheduler
# 生成密钥          
ssh-keygen -t rsa
# 远程cp到目标机器  
ssh-copy-id -i 192.168.0.1
ssh-copy-id -i 192.168.0.2
ssh-copy-id -i 192.168.0.3
  
 
# 修改目录权限,使得部署用户对二进制包解压后的 apache-dolphinscheduler-*-bin 目录有操作权限
chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-*-bin

dolphinscheduler_env.sh

  • 配置基本数据环境,如MySQL,ZooKeeper和各类使用的大数据环境的环境变量的base地址
  • 一些任务类型外部依赖路径或库文件,如 JAVA_HOME 和 SPARK_HOME都是在这里定义的
  • 注册中心zookeeper
  • 服务端相关配置,比如缓存,时区设置等
# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/usr/local/jdk/}

# Database related configuration, set database type, username and password
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL='jdbc:mysql://XXXXXXXXXXX:3306/dpscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true'
export SPRING_DATASOURCE_USERNAME=XXXXXXX
export SPRING_DATASOURCE_PASSWORD=XXXXXXXXXXXXX

# DolphinScheduler server related configuration
export SPRING_CACHE_TYPE=${SPRING_CACHE_TYPE:-none}
export SPRING_JACKSON_TIME_ZONE=${SPRING_JACKSON_TIME_ZONE:-UTC}
export MASTER_FETCH_COMMAND_NUM=${MASTER_FETCH_COMMAND_NUM:-10}

# Registry center configuration, determines the type and link of the registry center
export REGISTRY_TYPE=${REGISTRY_TYPE:-zookeeper}
export REGISTRY_ZOOKEEPER_CONNECT_STRING=${REGISTRY_ZOOKEEPER_CONNECT_STRING:-192.168.0.1:2181,-192.168.0.2:2181,-192.168.0.3:2181}

# Tasks related configurations, need to change the configuration if you use the related tasks.
#export HADOOP_HOME=${HADOOP_HOME:-/opt/soft/hadoop}
#export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/opt/soft/hadoop/etc/hadoop}
#export SPARK_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
#export SPARK_HOME2=${SPARK_HOME2:-/opt/soft/spark2}
#export PYTHON_HOME=${PYTHON_HOME:-/opt/soft/python}
#export HIVE_HOME=${HIVE_HOME:-/opt/soft/hive}
#export FLINK_HOME=${FLINK_HOME:-/opt/soft/flink}
#export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}

export HADOOP_HOME=${HADOOP_HOME:-/usr/hadoop}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/usr/hadoop/etc/hadoop}
#export SPARK_HOME1=${SPARK_HOME1:-/opt/soft/spark1}
export SPARK_HOME2=${SPARK_HOME2:-/usr/spark}
export PYTHON_HOME=${PYTHON_HOME:-/opt/anaconda3/bin/python}
export HIVE_HOME=${HIVE_HOME:-/usr/hive}
export FLINK_HOME=${FLINK_HOME:-/usr/flink}
export SQOOP_HOME=${FLINK_HOME:-/usr/sqoop}
#export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}


#export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$PATH


export PATH=$HADOOP_HOME/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$SQOOP_HOME/bin:$PATH

install_env.sh

  • 主要配置DolphinScheduler每台机器对应安装哪些服务
  • 注:deployUser记得修改为你本地配置的可SSH免密的用户名称
# ---------------------------------------------------------
# INSTALL MACHINE
# ---------------------------------------------------------
# A comma separated list of machine hostname or IP would be installed DolphinScheduler,
# including master, worker, api, alert. If you want to deploy in pseudo-distributed
# mode, just write a pseudo-distributed hostname
# Example for hostnames: ips="ds1,ds2,ds3,ds4,ds5", Example for IPs: ips="192.168.8.1,192.168.8.2,192.168.8.3,192.168.8.4,192.168.8.5"
ips=${ips:-"192.168.0.1,192.168.0.2,192.168.0.3"}

# Port of SSH protocol, default value is 22. For now we only support same port in all `ips` machine
# modify it if you use different ssh port
sshPort=${sshPort:-"22"}

# A comma separated list of machine hostname or IP would be installed Master server, it
# must be a subset of configuration `ips`.
# Example for hostnames: masters="ds1,ds2", Example for IPs: masters="192.168.8.1,192.168.8.2"
masters=${masters:-"192.168.0.1,192.168.0.2"}

# A comma separated list of machine <hostname>:<workerGroup> or <IP>:<workerGroup>.All hostname or IP must be a
# subset of configuration `ips`, And workerGroup have default value as `default`, but we recommend you declare behind the hosts
# Example for hostnames: workers="ds1:default,ds2:default,ds3:default", Example for IPs: workers="192.168.8.1:default,192.168.8.2:default,192.168.8.3:default"
workers=${workers:-"192.168.0.1:default,192.168.0.3:default"}

# A comma separated list of machine hostname or IP would be installed Alert server, it
# must be a subset of configuration `ips`.
# Example for hostname: alertServer="ds3", Example for IP: alertServer="192.168.8.3"
alertServer=${alertServer:-"192.168.0.2"}

# A comma separated list of machine hostname or IP would be installed API server, it
# must be a subset of configuration `ips`.
# Example for hostname: apiServers="ds1", Example for IP: apiServers="192.168.8.1"
apiServers=${apiServers:-"192.168.0.2"}

# The directory to install DolphinScheduler for all machine we config above. It will automatically be created by `install.sh` script if not exists.
# Do not set this configuration same as the current path (pwd). Do not add quotes to it if you using related path.
installPath=${installPath:-"/opt/dolphinscheduler"}

# The user to deploy DolphinScheduler for all machine we config above. For now user must create by yourself before running `install.sh`
# script. The user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled than the root directory needs
# to be created by this user
deployUser=${deployUser:-"hadoop"}

# The root of zookeeper, for now DolphinScheduler default registry server is zookeeper.
zkRoot=${zkRoot:-"/dolphinscheduler"}

安装

  • 配置完成后就可以正式安装了,部署后的运行日志将存放在对应服务的logs文件夹内
  • 看到这里的应该也有一个疑问,为啥没有集群分发的步骤,实际上在install中就会做scp操作,配置目录在install_env.shinstallPath中,会在子节点中创建同名文件夹
  • 路径:./bin/install.sh

登录

  • 由于是迁移,用户信息也会带过去,下边是安装的默认用户名密码哈,迁移的直接使用对应账号密码即可!
浏览器访问地址 http://localhost:12345/dolphinscheduler/ui 
默认用户名:admin
默认密码:dolphinscheduler123

问题

1.迁移后任务报错

  • 安装完可以快乐启动,但是要注意,由于是迁移,所以任务状态和定时任务都是上线状态,并且原有的节点信息会复刻,那!!!一定要先把所有任务停止一下,避免由于在同环境集群升级导致的节点信息报错,这是次要的,避免数据错误啊!

示例

  • 由于节点信息错误导致的任务报错,要修改dolphin里配置的Work分组管理
    在这里插入图片描述

2.存储未启用

  • ISSUE:https://github.com/apache/dolphinscheduler/issues/11404
  • 按照官网的安装后我的api-server等服务是启动了的,但是由于官网并没有过多描述对于环境的配置导致,嗯,我的hadoop等服务其实是不可用的,最明显的就是资源创建失败,如下
    在这里插入图片描述
    在这里插入图片描述
  • 这里就需要修改一些配置
  • 路径:你自己的路径/dolphinscheduler/tools/conf/common.properties
  • 用户:一定要用同上边安装启动统一的用户,避免由于权限问题导致的重复操作!
  • 其他文件:为了配置hadoop,要把HDFS的配置文件core-site.xml和hdfs-site.xml放在上边的同级目录下,也就是你自己的路径/dolphinscheduler/tools/conf/下(这里做过hadoop接口开发的应该都明白哈,这个比较清晰)
  • common.properties内容
在这里插入代码片
### 注释就都省略了哈

# user data local directory path, please make sure the directory exists and have read write permissions
# 预期的配置数据路径
data.basedir.path=/opt/software/dolphinscheduler/data

# resource view suffixs
#resource.view.suffixs=txt,log,sh,bat,conf,cfg,py,java,sql,xml,hql,properties,json,yml,yaml,ini,js

# resource storage type: HDFS, S3, NONE
# 预期使用的存储方式
resource.storage.type=HDFS
# resource store on HDFS/S3 path, resource file will store to this base path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
# 预期使用的存储目录,如果是迁移,一定要跟之前保持一致!!!
# 例如我这边配置的目录在报错后发现是/user/hdfs/resources/XXXXXXXX,由于原始用户是hdfs,原始路径是/user/XXXXX/resources/,所以配置的数据目录要保持一致
resource.storage.upload.base.path=/user

# s3的目录按需配置

# if resource.storage.type=HDFS, the user must have the permission to create directories under the HDFS root path
# 预期配置使用的用户
resource.hdfs.root.user=hadoop
# if resource.storage.type=S3, the value like: s3a://dolphinscheduler; if resource.storage.type=HDFS and namenode HA is enabled, you need to copy core-site.xml and hdfs-site.xml to conf dir
# 如果是单NameNode节点,则是使用对应的ip:port,如果是HA,就用namespace,不需要加端口
resource.hdfs.fs.defaultFS=hdfs://XXXXXXXXX

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DolphinScheduler跨版本升级1.3.8至3.0.1 的相关文章

  • this指向

    1 在全局环境中的this window 无论是否在严格模式下 在全局执行环境中 在任何函数体外部 this 都指向全局对象 use strict console log this window console log this windo

随机推荐

  • 联邦学习 深度学习对抗攻击

    联邦学习本身 联邦学习 实际上是一种加密的分布式机器学习技术 参与各方可以在不披露底层数据和底层数据的加密 混淆 形态的前提下共建模型 如果机构之间的数据无法互通 一家企业一家机构数据量有限 或者是少数巨头公司垄断大量数据 而小公司很难获得
  • 移动端Touch (触摸)事件

    一 常见的触摸事件 touchstart touchmove和touchend touchstart事件 当手指触摸屏幕时候触发 即使已经有一个手指放在屏幕上也会触发 touchmove事件 当手指在屏幕上滑动的时候连续地触发 在这个事件发
  • 怎么选择boost升压电路的电感?只要三个公式

    原文来自公众号 工程师看海 添加微信 chunhou0820 获取仿真文件 BOOST电源架构是一种非常经典的升压电源方案 它是利用开关管开通和关断的时间比率 维持稳定输出的一种开关电源 它以小型 轻量和高效率的特点被广泛应用在各行业电子设
  • 1-1、Qt基本概念以及界面绑定信号与槽的实例

    1 各种程序格式的选择方式 2 例子 新建mainwindow的项目 在ui拖动一个pushbuttton 点击界面下的信号与槽的部分 点击 然后选择发送者 信号 接收者 槽 一下为源码 sampl 1 pro Project create
  • yum提示 “Cannot retrieve metalink for repository: epel/x86_64” 的解决方法

    今天在centos7服务器上用yum的时候发现 yum命令不能用了 不管用yum什么命令都会出现如下提示 完整的错误提示如下 One of the configured repositories failed Unknown and yum
  • 深入理解[观察者模式]原理与技术

    观察者模式 Observer Pattern 也叫做发布 订阅 Publish Subscribe 模式 模型 视图 Model View 模式 这个模式的一个最重要的作用就是解耦 也就是将被观察者和观察者进行解耦 使得他们之间的依赖性更小
  • 【华为OD机试真题 C++】计算最大乘积 【2022 Q4

    前言 华为OD机试真题 C 本专栏包含华为OD机试真题C 解答 会实时更新收纳网友反馈 为大家更新最新的华为德科OD机试试题 为大家提供学习和练手的题库 订阅本专栏后可私信进交流群哦 答案仅供参考 不可照抄哦 题目描述 计算最大乘积 给定一
  • 【Unity3D】粒子光环

    作业要求 参考http i remember fr en 这类网站 使用粒子流编程控制制作一些效果 如 粒子光环 这个网站打不开 参考了一下师兄们的博客的图片 我看了一下 我感觉和上课做的粒子海洋有一些相似 就是需要变成一个环形 制作流程
  • JavaScript 数字去掉小数点后的0

    JavaScript 数字去掉小数点后的0 方法很简单 JavaScript提供了现成的方法 parseFloat function parseNum value value parseFloat value
  • 从头再来系列-Markdown基本语法

    以下内容摘抄于网络 Markdown 简介 Markdown 是一种轻量级标记语言 它允许人们使用易读易写的纯文本格式编写文档 Markdown 语言在 2004 由约翰 格鲁伯 英语 John Gruber 创建 Markdown 编写的
  • oracle基础知识

    1 oracle特点 2 oracle体系 实例 一组oracle后台进程以及在服务器中分配的共享内存区域 数据库 基于磁盘的数据文件 控制文件 日志文件 参数文件和归档文件等组成的物理文件集合 数据库服务器 三者之间的关系 实例用于控制和
  • 【DBeaver日常】查询出结果后,无法回到SQL编辑页面

    正常的查询页面 正常页面可以通过以下图示中的符号进行上下调整 上三角点击完以后的展示页面 如下图 下三角点击完以后的展示页面 如下图 误触以后的页面 误触以后可以通过下图中标示的部分进行恢复 结果面板恢复 最大化区域图示 选择上图中红色框线
  • QT学习之个人编程规范

    每个人对语言的编程习惯都不一样 这里简单介绍一下自己在学习使用Qt时养成的编程习惯 仅供参考 1 命名规则 1 1 常规命名规则 1 1 1 类命名规则 适用对象 1 窗口控件实现类 所有之间或间接继承于QWidget类的实现类 规则 命名
  • OpenMP设置线程数及开启方法

    1 OpenMP线程数设置 通常我们希望并行线程数可以随着机器改变自适应的调整 网上介绍OpenMP的文章很多 但是很少提到该怎么分配线程数 一般来说线程数最大可以开到2 核心数 但是这样电脑计算资源就会被占用的过多 其他程序基本上会卡的不
  • ASP.NET Core WebAPI学习-6

    ASP NET Core WebAPI学习 1 ASP NET Core WebAPI学习 2 ASP NET Core WebAPI学习 3 ASP NET Core WebAPI学习 4 ASP NET Core WebAPI学习 5
  • 数据结构——图的广度优先遍历(BFS)

    本文内图的存储方式是邻接矩阵 不过BFS的具体实现代码与图的存储结构无关 BFS的遍历方法 与树的层次遍历几乎一样 在实现树的层次遍历时 需要找到结点的所有子结点 在实现BFS时 需要找到该结点的所有邻接点 所以在实现BFS之前 需要先学习
  • VS2010 的卸载方法

    如何完全卸载VS2010 亲自体验过 1 首先用360卸载 当卸载完成后 提示有残余的话 就强力清除 PS 笔者使用专用卸载工具 IobitUninstaller 工具 此工具是单文件 免安装 它的特点是拥有360安全卫士 金山安全卫士 Q
  • 复制虚拟机后无法上网的问题

    1 背景 虚拟机用的是VMWare为了得到新的环境 而又不想每次都重装虚拟机 于是某天我复制了一台待机的虚拟机 然鹅它起来后却上不了网 无论我设了静态ip还是动态ip都不行 2 解决方法 问了下chatgpt 说是因为虚拟机的MAC地址冲突
  • 第十五章 AlibabaCloud微服务下的分布式配置中⼼

    1 微服务下的分布式配置中 现在微服务存在的问题 配置 件增多 不好维护 修改配置 件需要重新发布 什么是配置中 句话 统 管理配置 快速切换各个环境的配置 相关产品 百度的disconf 地址 https github com knigh
  • DolphinScheduler跨版本升级1.3.8至3.0.1

    DolphinScheduler跨版本升级1 3 8至3 0 1 Refer 背景 基础环境 依赖版本升级 修改pom xml 问题解决 MYSQL升级 1 文件替换 2 修改表结构 t ds process definition t ds