Apache DolphinScheduler 1.3.6 功能发布说明
阅读原文时间:2023年07月10日阅读:1

参与人员

@chengshiwen、@hailin0、@wanghong1314、@ruanwenjun、@xxjingcd、@zhangguohao、@zhuangchong、@syb853553110、@wangdazhong001、@CalvinKirs、@AlleriaWindrunner、@597365581 、@lenboo 、@yakcy

感谢各位的参与,让Apache DolphinScheduler更加茁壮的成长,期待更多的小伙伴可以加入进来。

加入方式可以参考文章末尾的相关介绍。

新功能

支持接入SkyWalking

我们同Apache SkyWalking社区一起协作完成了DolphinScheduler的链路监控设计以及开发。

主要如下:

  • 通信协议改造为支持链路跟踪header传递

  • 任务调度执行核心链路的跟踪

  • jvm指标自动采集,观测vm状态

  • 日志输出到skywalking ,可在skywalking web在线查看日志,并与链路跟踪关联起来

PS:感兴趣的同学可以根据文档接入SkyWalking来实现DolphinScheduler的链路监控。

重要优化

1

Docker & K8S

Docker 优化:

  • 修复 WORKER_GROUP 不生效问题,更改为 WORKER_GROUPS

  • 修复Windows的dolphinscheduler_env.sh 挂载出错问题

  • 容器内进程优化为 supervisor 管理

  • 优化 supervisor 进程日志输

  • 适配 docker compose file 3.1+ 版本

  • 同步最新 1.3.6 版本所有配置项,包括 common、master、worker

  • 新增 config.env.sh 环境变量配置文件,用于配置 docker compose 和 swarm

  • 新增MASTER_SERVER_OPTS,WORKER_SERVER_OPTS, ALERT_SERVER_OPTS,API_SERVER_OPTS, LOGGER_SERVER_OPTS 环境变量

  • 支持 SkyWalking 配置和集成

  • 更新基础镜像为 debian:slim,提升镜像扩展性,如安装 Python 库、Python 3 等

  • 镜像移除冗余的 postgresql-client

  • 支持 Hadoop、Spark、Flink、DataX 等任务扩展

  • 添加支持矩阵

  • 添加如 MySQL、Hadoop、Spark、Oracle 数据源集成等常见问题

  • 镜像增加WORKDIR,移除冗余的 container_name和dolphinscheduler-postgresql-initdb

Kubernetes 优化:

  • 修复 WORKER_GROUP 不生效问题,更改为WORKER_GROUPS

  • 修复Minikube 上不正确 host 注册问题

  • 修复所有Kubernetes 1.12+的Ingress兼容性问题

  • 优化values.yaml配置文件

  • 合并image的registry和repository为 repository 字段,支持本地镜像

  • 修改imagePullSecrets 为image的pullSecret 字段

  • 新增 externalDatabase 的 type、driver、params 字段,可以支持非 PostgreSQL 的外部数据库

  • 新增common 字段,用于配置 common.properties、 dolphinscheduler_env.sh 等公共环境变量配置

  • 新增common.sharedStoragePersistence字段,用户api、master、worker 共享存储,如 Hadoop、Spark二进制包

  • 修改resource.persistentVolumeClaim为common.fsFileResourcePersistence字段

  • 移除 resource 字段

  • master、worker、api、alert 新增字段:annotations、resources,后者用于配置 cpu、memory 资源

  • 新增api.service 字段,支持 ExternalName、ClusterIP、ClusterIP、LoadBalancer 等多种暴露方式

  • 优化ingress.path为/dolphinscheduler

  • 移除冗余的 ingress.hosts

  • 同步最新 1.3.6 版本所有配置项,包括 common、master、worker

  • 新增MASTER_SERVER_OPTS, WORKER_SERVER_OPTS, ALERT_SERVER_OPTS, API_SERVER_OPTS, LOGGER_SERVER_OPTS 环境变量

  • 支持 SkyWalking 配置和集成

  • 支持 Hadoop、Spark、Flink、DataX 等任务扩展

  • 添加支持矩阵

  • 添加如 MySQL、Hadoop、Spark、Oracle 数据源集成等常见问题

  • 优化 master 和 worker 的长 FQDN 地址为短 FQDN 地址,以及地址在 UI 中的显示

  • 修复定时任务无法生效的问题

  • 修复 DATA_BASEDIR_PATH,  RESOURCE_STORAGE_TYPE 或 RESOURCE_UPLOAD_PATH 未设置导致无法部署的问题

  • 修复容器中始终  Runtime.getRuntime().availableProcessors()=1 导致默认 max.cpuload.avg=2,从而任务无法调度执行的问题

  • 优化 Helm 的 templates 文件,删除重复的模板和配置

2

Worker Group

  • 支持在 Web UI 创建、编辑、删除等操作

其他功能

优化:

  • [#5062][功能][WorkerGroup]在WebUI中创建/编辑/删除WorkerGroup

  • [#5175][优化][Server]优化和减少数据库和Zookeeper的WorkerGroup查询

  • [#4837][优化][Docker/K8s]Docker和K8优化

  • [#5023][优化][Docker/K8s]改进docker和k8s#2584#2687#4732#4837#4871#4886#4897

  • [#5158][优化][Docker/K8s]支持更多的配置,SkyWalking的配置,提升镜像扩展性,如安装Python库、Python3等,更新常见问题并添加支持矩阵#4837#5155#5068#5141#402#403

  • [#5068][优化] [Docker/K8s] Docker/k8s上的任务支持矩阵和解决方案

  • [#5195][优化][Docker/K8s]改善反馈#5309#5310

  • [#5100][功能][K8s]支持在Spark,Flink和DataX等K8上的任务可伸缩性

  • [#5224][优化][Docker]为dockerfile添加工作目录并删除冗余的container_name和dolphinscheduler-postgresql-initdb

  • [#4852][功能]支持SkyWalking代理插件

  • [#5310][优化][Server]负载日志修改,具体信息更加清晰明了

  • [#5028][功能][MR]支持MapReduce名称

  • [#4960][功能][Spark]支持Spark名称

  • [#4285][功能]添加Flink作业名称

  • [#4976][功能][Flink]支持名称和并行输入

  • [#4805][优化][SQL]将升级后的架构放置到正确的版本目录中,并检查架构错误

  • [#4751][优化][API]改进Duration字段,将显示修改为基于时间的分秒格式(例如,1d10h20m1s)

  • [#174][优化][SqlTask]在SqlTask中添加一个开关来发送邮件和打印头日志

  • [#5187][Build]优化发行版名称并删除未使用的Nginx发行版

  • [#5087][功能][SqlTask]添加一个开关,以发送邮件并在SqlTask

  • [#4624][优化][Server]当server位于失效服务器列表中时ofzk,需要自行停止服务

  • [#4969][优化][UI]在文件详细信息页面中支持更多文件类型

  • [#2619][优化][API]/dolphinscheduler/projects/create创建成功后返回项目ID

修复:

  • [#5309][Bug]memoryUsage为-33%

  • [#4843][Bug][Docker]1.3.5版本文件配置错误WORKER_GROUP

  • [#4651][Bug][Docker]Docker中出现随机PSQLException

  • [#5351[Bug][K8s]Quartzcron任务无法生效

  • [#4905][Bug][K8s]minikube中的主机问题不正确

  • [#5176][Bug][Server]错误的 excludeFilters导致工作服务器启动主服务器bean和诸如  LowerWeightHostManager和 RefreshResourceTask

  • [#5132][Bug][server]当taskExecuteThread线程发生异常时,任务不能立刻停止

  • [#5150][Bug][server]DB事务失败

  • [#5103][Bug][Resource]File和UDF的文件名资源未更改,并且在重命名名称后无法重新上传

  • [#5349][Bug][master]手动杀死无法重试的任务。并行任务成功执行后,工作流程状态将始终运行

  • [#5328][Bug][MasterServer]包含依赖任务时,任务失败后可能导致流程处于始终运行状态

  • [#5199][Bug][api]当shell任务中存在sleep的时候无法被kill

  • [#5063][SQL]修复MySQL数据源jdbcconnect参数

  • [#5048][Bug][Api]删除已停止的工作流程而不删除相应的子流程,该工作流程实例名称未显示在子流程中

  • [#5044][Bug][Master]过滤空Host导致未执行Master启动容错

  • [#5037][Bug][Server]重新启动和停止后,Master和Worker都处于挂起状态

  • [#4866][Bug][Common]未加载hdfs-site.xml导致客户端无法访问数据节点

  • [#4862][[Bug][Server]Kill任务异常处理

  • [#4840][Bug]多个Master同时启动,会导致全局容错逻辑错误

  • [#4816][Bug][API]当时间参数错误时,API调用工作流实例查询接口并查询所有数据

  • [#4738][Bug]发送邮件失败的情况下任务执行应该成功

  • [#4760][Bug]初始化 dolphinscheduler-postgre.sql错误

  • [#4705][Bug][API]解决zk调用异常的问题

  • [#4674][Bug][UI]使用用户名和密码登录时的提示错误

  • [#4650][Bug][Api]PostgreSQL中的流程定义创建,更新和复制错误

  • [#4716][Bug][Master,Worker]任务执行路径应由Worker计算而非Master计算

  • [#4617][Bug][LoggerServer]任务日志无法及时刷新

参与Apache DolphinScheduler

参与贡献

随着国内开源的崛起,Apache DolphinScheduler迎来了蓬勃发展,为了做更好用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,青春在开源上留下一点印记。

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:

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

快来加入吧,Apache DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。

官方下载地址:

https://dolphinscheduler.apache.org/en-us/download/download.html

SkyWalking Agent部署:

https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/skywalking-agent-deployment.html