2022 年 4 月 22 日,Apache DolphinScheduler 正式宣布 3.0.0 alpha 版本发布!此次版本升级迎来了自发版以来的最大变化,众多全新功能和特性为用户带来新的体验和价值。3.0.0-alpha 的关键字,总结起来是 “更快、更现代化、更强、更易维护”。

更快、更现代化:重构了 UI 界面,新 UI 不仅用户响应速度提高数十倍,开发者构建速度也提高数百倍,且页面布局、图标样式都更加现代化;

更强:带来了许多振奋人心的新功能,如数据质量评估、自定义时区、支持 AWS,并新增多个任务插件和多个告警插件;

更易维护:后端服务拆分更加符合容器化和微服务化的发展趋势,还能明确各个服务的职责,让维护更加简单。

新功能和新特性

01 全新 UI,前端代码更健壮,速度更快

3.0.0-alpha 最大的变化是引入了新的 UI,切换语言页面无需重新加载,并且新增了深色主题。新 UI 使用了 Vue3、TSX、Vite 相关技术栈。对比旧版 UI,新 UI 不仅更加现代化,操作也更加人性化,前端的鲁棒性也更强,使用户在编译时一旦发现代码中的问题,可以对接口参数进行校验,从而使前端代码更加健壮。

此外,新架构和新技术栈不仅能让用户在操作 Apache DolphinScheduler 时响应速度有数十倍的提升,同时开发者本地编译和启动 UI 的速度有了数百倍的提升,这将大大缩短开发者调试和打包代码所需的时间。
新 UI 使用体验:

本地启动耗时对比

首页

工作流实例页面

Shell 任务页面

MySQL 数据源页面

02 支持 AWS

随着 Apache DolphinScheduler 用户群体越来越丰富,吸引了很多海外用户。但在海外业务场景下,用户在调研过程中发现有两个影响用户便捷体验 Apache DolphinScheduler 的点,一个是时区问题,另一个则是对海外云厂商,尤其是对 AWS 的支持不足。为此,我们决定对AWS 较为重要的组件进行支持,这也是此版本的最重大的变化之一。

目前,Apache DolphinScheduler 对 AWS 的支持已经涵盖 Amazon EMR 和 Amazon Redshift 两个 AWS 的任务类型,并实现了资源中心支持 Amazon S3 存储。

针对 Amazon EMR,我们创建了一个新的任务类型,并提供了其 Run Job Flow 的功能,允许用户向 Amazon EMR 提交多个 steps 作业,并指定使用的资源数量。详情可见:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/task/emr.html

Amazon EMR 任务定义

对于 Amazon Redshift,我们目前在 SQL 任务类型中扩展了对 Amazon Redshift 数据源的支持,现在用户可以在 SQL 任务中选择 Redshift 数据源来运行 Amazon Redshift 任务。

Amazon Redshift 支持

对于 Amazon S3,我们扩展了 Apache DolphinScheduler 的资源中心,使其不仅能支持本地资源、HDFS 资源存储,同时支持 Amazon S3 作为资源中心的储存。详情可见:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/resource.html 中的

`resource.storage.type`​

后续我们将用户的实际需求支持更多 AWS 任务,敬请期待。

03 服务拆分

全新的 UI 是 3.0.0-alpha 前端的最大变化,而后端最大的变化就是对服务进行拆分。考虑到容器和微服务的概念越来越火热,Apache DolphinScheduler 开发者做出了重大决定:对后端服务进行拆分。按照职能,我们将服务拆分成了以下几部分:

master-server: master服务

worker-server: worker服务

api-server: API服务

alert-server: 告警服务

standalone-server: standalone用于快速体验 dolphinscheduler 功能

ui: UI资源

bin: 快速启动脚本,主要是启动各个服务的脚本

tools: 工具相关脚本,主要包含数据库创建,更新脚本

所有的服务都可以通过执行下面的命令进行启动或者停止。

`bin/dolphinscheduler-daemon.sh <start|stop> <server-name>`

04 数据质量校验

此版本中,用户期待已久的数据质量校验应用功能上线,解决了从源头同步的数据条数准确性,单表或多表周均、月均波动超过阈值告警等数据质量问题。Apache DolphinScheduler 此前版本解决了将任务以特定顺序和时间运行的问题,但数据运行完之后对数据的质量一直没有较为通用的衡量标准,用户需要付出额外的开发成本。

现在,3.0.0-alpha 已经实现了数据质量原生支持,支持在工作流运行前进行数据质量校验过程,通过在数据质量功能模块中,由用户自定义数据质量的校验规则,实现了任务运行过程中对数据质量的严格控制和运行结果的监控。

05 任务组

任务组主要用于控制任务实例并发并明确组内优先级。用户在新建任务定义时,可配置当前任务对应的任务组,并配置任务在任务组内运行的优先级。当任务配置了任务组后,任务的执行除了要满足上游任务全部成功外,还需要满足当前任务组正在运行的任务小于资源池的大小。当大于或者等于资源池大小时,任务会进入等待状态等待下一次检查。当任务组中多个任务同时进到待运行队列中时,会先运行优先级高的任务。

详见链接:https://dolphinscheduler.apache.org/zh-cn/docs/3.0.0/user_doc/guide/resource.html

06 自定义时区

在 3.0.0-alpha 之前版本,Apache DolphinScheduler 默认的时间是 UTC+8 时区,但随着用户群体扩大,海外用户和在海外开展跨时区业务的用户在使用中经常被时区所困扰。3.0.0-alpha 支持时区切换后,时区问题迎刃而解,满足了海外用户和出海业务伙伴的需求。例如,如当企业业务涉及的时区包含东八区和西五区,如果想要使用同一个 DolphinScheduler 集群,可以分别创建多个用户,每个用户使用自己当地的时区,对应 DolphinScheduler 对象显示的时间均会切换为对应时区的当地时间,更加符合当地开发者的使用习惯。

详见链接:https://dolphinscheduler.apache.org/zh-cn/docs/3.0.0/user_doc/guide/howto/general-setting.html

07 任务定义列表

使用 Apache DolphinScheduler 3.0.0-alpha 此前版本,用户如果想要操作任务,需要先找到对应的工作流,并在工作流中定位到任务的位置之后才能编辑。然而,当工作流数量变多或单个工作流有较多的任务时,找到对应任务的过程将会变得非常痛苦,这不符合 Apache DolphinScheduler 所追求的 easy to use 理念。所以,我们在 3.0.0-alpha 中增加了任务定义页面,让用户可以通过任务名称快速定位到任务,并对任务进行操作,轻松实现批量任务变更。

详见链接:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/project/task-definition.html

08 新增告警类型

与此同时,3.0.0-alpha 告警类型也增加了对 Telegram、Webexteams 告警类型的支持。

09 Python API 新功能

3.0.0-alpha 中,Python API 最大的变化是将对应的 PythonGatewayServer 集成到了 API-Server 服务,使得开启对外服务更加规整,且缓解了因服务拆分导致的二进制包变大的问题。同时,Python API 还增加了 CLI 和 configuration 模块,让用户可以自定义配置文件,修改配置更加便捷。

10 其他新功能

除了上述功能外,3.0.0-alpha 版本还进行了很多细节功能增强,如重构任务插件、数据源插件模块,让扩展更简单;恢复了对 Spark SQL 的支持;E2E 测试已经完美兼容新 UI 等。

主要优化项

[#8584] 任务后端插件优化,新插件只需要修改插件自带的模块
[#8874] 在工作流下提交/创建 cron 时验证结束时间和开始时间
[#9016] Dependent 添加依赖时可以选择全局项目
[#9221] AlertSender 优化及关闭优化,如 MasterServer
[#9228] 实现使用 slot 扫描数据库
[#9230] python gateway server 集成到 apiserver 来减少二进制包大小[#9372] [python] 将 pythonGatewayServer 迁移到 api 服务器
[#9443] [python] 添加缺失的配置和连接远程服务器文档
[#8719] [Master/Worker] 将任务 ack 更改为运行回调
[#9293] [Master] 添加任务事件线程池

主要 Bug 修复

[#7236] 修复使用 S3a Minio 创建租户失败的问题
[#7416] 修复文本文件 busy 的问题
[#7896] 修复项目授权时生成一个重复授权项目的问题
[#8089] 修复因无法连接到 PostgreSQL 而启动服务器失败的问题
[#8183] 修复消息显示找不到数据源插件“Spark”的问题
[#8202] 修复 MapReduce 生成的命令内置参数位置错误的问题
[#8751] 解决更改参数用户,队列在 ProcessDefinition 中失效的问题
[#8756] 解决使用依赖组件的进程无法在测试和生产环境之间迁移
[#8760] 解决了资源文件删除条件的问题
[#8791] 修复编辑复制节点的表单时影响原始节点数据的问题
[#8951] 解决了 Worker 资源耗尽并导致停机的问题
[#9243] 解决了某些类型的警报无法显示项目名称的问题

Release Note

https://github.com/apache/dolphinscheduler/releases/tag/3.0.0-alpha

感谢贡献者

按首字母排序Aaron Lin, Amy0104, Assert, BaoLiang, Benedict Jin, BenjaminWenqiYu, Brennan Fox, Devosend, DingPengfei, DuChaoJiaYou, EdwardYang, Eric Gao, Frank Chen, GaoTianDuo, HanayoZz, Hua Jiang, Ivan0626, Jeff Zhan, Jiajie Zhong, JieguangZhou, Jiezhi.G, JinYong Li, J·Y, Kerwin, Kevin.Shin, KingsleyY, Kirs, KyoYang, LinKai, LiuBodong, Manhua, Martin Huang, Maxwell, Molin Wang, OS, QuakeWang, ReonYu, SbloodyS, Shiwen Cheng, ShuiMuNianHuaLP, ShuoTiann, Sunny Lei, Tom, Tq, Wenjun Ruan, X&Z, XiaochenNan, Yanbin Lin, Yao WANG, Zonglei Dong, aCodingAddict, aaronlinv, caishunfeng, calvin, calvinit, cheney, chouc, gaojun2048, guoshupei, hjli, huangxiaohai, janeHe13, jegger, jon-qj, kezhenxu94, labbomb, lgcareer, lhjzmn, lidongdai, lifeng, lilyzhou, lvshaokang, lyq, mans2singh, mask, mazhong, mgduoduo, myangle1120, nobolity, ououtt, ouyangyewei, pinkhello, qianli2022, ronyang1985, seagle, shuai hou, simsicon, songjianet, sparklezzz, springmonster, uh001, wangbowen, wangqiang, wangxj3, wangyang, wangyizhi, wind, worry, xiangzihao, xiaodi wang, xiaoguaiguai, xuhhui, yangyunxi, yc322, yihong, yimaixinchen, zchong, zekai-li, zhang, zhangxinruu, zhanqian, zhuangchong, zhuxt2015, zixi0825, zwZjut, 天仇, 小张, 时光, 王强, 百岁, 弘树, 张俊杰, 罗铭涛

参与贡献

随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。

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

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

社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689

非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html

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

参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。

添加小助手微信时请说明想参与贡献。

来吧,开源社区非常期待您的参与。

3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力的更多相关文章

  1. 【Phylab2.0】Alpha版本发布说明

    新版本特性 更多的实验 Part Phylab2.0[Alpha] Phylab1.0 1011 1010113 缺失 1011 1010212 缺失 1021 1020113 1021 102021 ...

  2. 开源微信管家平台——JeeWx 捷微4.0 微服务版本发布,全新架构,全新UI,提供强大的图文编辑器

    JeeWx捷微4.0   微服务版本发布^_^ 换代产品(全新架构,全新UI,提供强大的图文编辑器) JEEWX 从4.0版本开始,技术架构全新换代,采用微服务架构,插件式开发,每个业务模块都是独立的 ...

  3. Android Studio 3.0 下载 使用新功能介绍

    谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快.(英语一般,有些翻译不太好) 下载地址 https://developer.android.g ...

  4. play ball小游戏-Alpha版本发布说明

    Alpha版本发布说明 一.功能介绍 本团队所做的微信小程序是一款小球经碰撞后最终到达目的位置通关的休闲益智类游戏.Alpha版本具有的功能大体如下: 1. 闯关模式 多达12关普通竖屏关卡.4关特殊 ...

  5. 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进

    点击上方 蓝字关注我们 作者 | 宋哲琦 ✎ 编 者 按 在不久前的 Apache  DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统 ...

  6. [译]发布ABP v0.19包含Angular UI选项

    发布ABP v0.19包含Angular UI选项 ABP v0.19已发布,包含解决的~90个问题和600+次提交. 新功能 Angular UI 终于,ABP有了一个SPA UI选项,使用最新的A ...

  7. julia,集Python、C++、R为一体!Julia 1.0重磅发布, MIT发布史上最强科学计算编程语言?创始人独家解答11个问题

    这个编程语言的新版本之所以受到整个人工智能界的关注,最主要的原因正是其将 C 语言的速度.Ruby 的灵活.Python 的通用性前所未有地结合在一起,支持并行处理,易于学习和使用,尤其适合科学和工程 ...

  8. 120项改进:开源超级爬虫Hawk 2.0 重磅发布!

    沙漠君在历时半年,修改无数bug,更新一票新功能后,在今天隆重推出最新改进的超级爬虫Hawk 2.0! 啥?你不知道Hawk干吗用的? 这是采集数据的挖掘机,网络猎杀的重狙!半年多以前,沙漠君写了一篇 ...

  9. (转)重磅出击:MongoDB 3.0正式版即将发布

    MongoDB 今天宣布 3.0 正式版本即将发布.这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大.灵活而且易于管理的数据库管理系统. MongoDB 3.0 在性能和伸缩性方面都 ...

随机推荐

  1. OpenHarmony3.1 Release版本特性解析——硬件资源池化架构介绍

    李刚 OpenHarmony 分布式硬件管理 SIG 成员 华为技术有限公司分布式硬件专家 OpenHarmony 作为面向全场景.全连接.全智能时代的分布式操作系统,通过将各类不同终端设备的能力进行 ...

  2. 为什么Java有了synchronized之后还造了Lock锁这个轮子?

    众所周知,synchronized和Lock锁是java并发变成中两大利器,可以用来解决线程安全的问题.但是为什么Java有了synchronized之后还是提供了Lock接口这个api,难道仅仅只是 ...

  3. Java开发学习(一)----初识Spring及其核心概念

    一. Spring系统架构 1.1 系统架构图 Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基. Spring Framework的发展也经历了很多版本的变更,每 ...

  4. 腾讯云Redis全面升级,性能提升400%,可用性高达5个9

    2022年6月,腾讯云Redis全新升级,发布高性能版本,单节点可提供50W+吞吐,性能是原生Redis的4倍.同时,腾讯云Redis推出全球复制功能,解决原生Redis诸多痛点问题,可用性升级高达9 ...

  5. 论文解读(ARVGA)《Learning Graph Embedding with Adversarial Training Methods》

    论文信息 论文标题:Learning Graph Embedding with Adversarial Training Methods论文作者:Shirui Pan, Ruiqi Hu, Sai-f ...

  6. Django 学习记录(AcWing)

    Django 2.1 搭建文件结构 前面的都是配置基本步骤,不需要理解,其他Django项目同样步骤操作: 接下来用Django-admin新建一个Django项目: django-admin sta ...

  7. springboot执行流程

    构造方法初始化,创建一个新的实例,这个应用程序的上下文要从指定的来源加载bean public SpringApplication(ResourceLoaderresourceLoader,Class ...

  8. java中JVM和JMM之间的区别

    一 jvm结构 jvm的内部结构如下图所示,这张图很清楚形象的描绘了整个JVM的内部结构,以及各个部分之间的交互和作用. 1 Class Loader(类加载器)就是将Class文件加载到内存,再说的 ...

  9. Educational Codeforces Round 128 (Rated for Div. 2) A-C+E

    Educational Codeforces Round 128 (Rated for Div. 2) A-C+E A 题目 https://codeforces.com/contest/1680/p ...

  10. 一个月后,我们又从 MySQL 双主切换成了主 - 从!

    这是悟空的第 157 篇原创文章 官网:www.passjava.cn 你好,我是悟空. 一.遇到的坑 一个月前,我们在测试环境部署了一套 MySQL 高可用架构,也就是 MySQL 双主 + Kee ...