写点什么

Apache DolphinScheduler 正式发布 3.0.0 版本

  • 2022-08-11
    北京
  • 本文字数:3959 字

    阅读完需:约 13 分钟

Apache DolphinScheduler 正式发布3.0.0 版本

2022 年 8 月 10 日,在经过 3.0.0 alpha、3.0.0-beta-1、3.0.0-beta-2 不断验证之后,Apache DolphinScheduler 终于正式发布第三个大版本。3.0.0 正式版本发生了自发版以来的最大幅度变动,新增了众多全新功能和特性。


经过迭代的 3.0.0 正式版与此前 3.0.0 alpha 版本更新文中所描述的主要功能和特性更新、优化项和 Bug 修复大致一致,包括“更快、更强、更现代化、更易维护”这四个关键词总结。


  • 更快:重构了 UI 界面,新 UI 不仅用户响应速度提高数十倍,开发者构建速度提高数百倍;

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

  • 更现代化:新 UI 除了更快外,大到页面布局,细到图标样式都更加现代化;

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


新功能和新特性包括:

全新 UI


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


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


AWS 支持


随着 Apache DolphinScheduler 用户群体越来越丰富,吸引了很多海外用户。但在海外业务场景下,用户在调研过程中发现有两个影响用户便捷体验 Apache DolphinScheduler 的点,一个是时区问题,另一个则是对海外云厂商,尤其是对 AWS 的支持不足。此版本中,我们决定对 AWS 较为重要的组件进行支持,目前已经涵盖 Amazon EMR 和 Amazon Redshift 两个 AWS 的任务类型,以及实现了资源中心支持 Amazon S3 存储。


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


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


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

服务拆分

全新的 UI 是 3.0.0  前端的最大变化,而后端最大的变化就是对服务进行拆分。考虑到容器和微服务的概念越来越火热,Apache DolphinScheduler 开发者做出了重大决定:对后端服务进行拆分。按照职能,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` 
复制代码

的方式进行启动或者停止。


数据质量保证


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


现在,3.0.0  已经实现了数据质量原生支持,用户可以直接通过配置的方式,轻松实现数据质量监控,在保证工作流运行的前提下,保证运行结果的准确性。


任务组


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


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


自定义时区


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


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


任务定义列表


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


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


新告警类型支持


在 3.0.0  中,告警类型也进行了扩展,增加了对 Telegram、Webexteams 告警类型的支持。


Python API 新功能


3.0.0 中,Python API 最大的变化是将对应的 PythonGatewayServer 集成到了 API-Server 服务, 并将其重命名 PythonGatewayService, 现在用户在启动 api-server 时会默认启动 PythonGatewayService;如果不想要启动 PythonGatewayService,可以将 application.yaml 中的 python-gateway.enabled 设置成 false。


此外, Python API 还增加了 CLI 和 configuration 模块。Configuration 模块允许用户修改 Python API 默认的配置, 如修改工作流默认的用户名、worker 分组等内容, 可以通过环境变量、直接修改文件、Python 动态修改来改变值。



目前 CLI 只有 version 和 config 两个子命令, 用于确认当前版本以及增删配置文件。后续,将引入更加多功能,方便用户通过命令行操作 DolphinScheduler。



值得注意的是,Python API 还支持新增和上传资源中心文件功能,方便资源管理;支持同一个 project 不同 workflow 写入不同名称;增加集成测试,让测试更加便捷。 


此前版本未公布的功能和特性更新


支持 Flink 任务类型


在该版本中,Apache DolphinScheduler 扩展了 Flink 任务类型,使其支持运行 Flink SQL 任务,其使用 sql-client.sh 提交任务。在此前的版本中, 我们仅支持通过 flink cli 的方式提交任务, 这种方式需要结合资源中心, 将资源文件提交到资源中心, 然后在任务定义页面引用改资源, 对于版本化和用户透明都不是十分友好. 随着 flink sql 逐渐成为 flink 使用者的主流, 加之直接在编辑页面写 sql 更加用户透明, 我们采纳了向社区贡献的 flink sql 功能. 3.0.0 以后的版本用户可以更加方便的使用 flink 任务了。


更多详情查看:flink sql client


对应 PR:https://github.com/apache/dolphinscheduler/pull/9840


新增 Zepplin 任务类型


在该版本中,增加了 Zeppelin 任务类型,用于创建并执行 Zeppelin 类型任务。Worker 执行该任务时,会通过 Zeppelin Cient API 触发 Zeppelin Notebook 段落。


对应 PR:https://github.com/apache/dolphinscheduler/pull/9810


Bash 传参功能


新版本还新增了通过 bash 传参的功能,如果你想在下游任务中使用 bash 变量而不是常量值 export 参数,你可以在通过 setValue 和 Bash 变量实现,它更加灵活,可以让你动态地获取现有的本地或 HTTP 资源获取设定变量。


可以使用类似的语法

lines_num=$(wget https://raw.githubusercontent.com/apache/dolphinscheduler/dev/README.md -q -O - | wc -l | xargs)echo "#{setValue(set_val_var=${lines_num})}"
复制代码


允许用户上传没有后缀的文件


之前资源中心只能上传有后缀的文件,3.0.0 版本支持用户上传没有后缀的文件。


其他功能增强


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


主要优化项

  • 任务后端插件优化,新插件只需要修改插件自带的模块

  • 在工作流下提交/创建 cron 时验证结束时间和开始时间

  • Dependent 添加依赖时可以选择全局项目

  • AlertSender 优化及关闭优化,如 MasterServer

  • 增加 slot 条件查询数据库, 减少返回数据记录

  • 通过将 python gatewar 迁移到 apiserver 来精简 dist 包

  • [python] 将 pythonGatewayServer 迁移到 api 服务器

  • [python] 添加缺失的配置和连接远程服务器文档

  • [Master/Worker] 将任务 ack 更改为运行回调

  • [Master] 添加任务事件线程池


Release note


GitHub: https://github.com/apache/dolphinscheduler/releases/tag/3.0.0


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

2022-08-11 12:104818

评论

发布
暂无评论
发现更多内容

为什么越来越多的开发者放弃使用Postman,而选择Apifox

Liam

前端 后端 Postman swagger API文档

百度发布首个数字人度晓晓挑战高考作文

开源直播系统源码

高考 百度AI 度晓晓 百度数字人

作为软件工程师,给年轻时的自己的建议(下)

禅道项目管理

工程师 程序员进阶 程序员‘

Yarn的RM功能介绍

五分钟学大数据

6月月更

网站FAQ页面有必要做吗?该如何做?

小炮

进出口管理系统解决方案

低代码小观

供应链 企业管理系统

半监督式机器学习提升银行业对于团伙欺诈交易行为的风控能力

易观分析

银行

MASA Auth - 从用户的角度看整体设计

MASA技术团队

见微知著,细节上雕花:SVG生成矢量格式网站图标(Favicon)探究

刘悦的技术博客

前端 favicon SVG svg图 Icon Font

中建普联与数商云达成战略合作协议,共同打造建设行业数智化发展新高地

数商云

产业互联网 数字化转型 企业数字化

ESB基础样例前置资源配置

agileai

数据治理 系统集成 数据集成 企业服务总线 预置样例

flask框架自主学习

恒山其若陋兮

6月月更

为什么不能使用 datax 直接读写 hive acid 事务表?

明哥的IT随笔

如何删除 git 仓库中的 .idea 文件?

程序员小航

git IDEA

为什么我们总是说不清「需求是什么」

LigaAI

产品经理 需求 需求分析 产品设计与思考

隐藏在 graph-ocean 背后的星辰大海

NebulaGraph

ORM框架 图数据库 知识图谱 Nebula Graph

无人24小时自助洗车代理怎么做

共享电单车厂家

自助洗车加盟 自助洗车代理

没有行业经验能否加盟自助洗车

共享电单车厂家

自助洗车加盟

全网对OSPF最言简意赅的归纳!强烈建议收藏!

wljslmz

OSPF 网络工程师 动态路由 6月月更 路由协议

OKALEIDO的NFT聚合交易,打造面向艺术家的Web3商业生态

股市老人

flutter系列之:构建Widget的上下文环境BuildContext详解

程序那些事

flutter 程序那些事 6月月更

小游戏开发是进行网游的必需环节,你知道吗?

开源直播系统源码

软件开发 小游戏开发 直播系统 app源码

OpenHarmony 3.1 Release版本关键特性解析——HDI硬件设备接口介绍

OpenHarmony开发者

OpenHarmony 3.1 Release

openGauss“用户故事”正式上线!一键分享实践经验,限量版礼物等你拿

opengauss 开源社区 用户故事

使用APICloud AVM多端框架开发课程表功能

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 AVM

Go语言创造者回顾:是什么让GoLang如此受欢迎?

三石

go语言

如何挑选合适的共享自助洗车机

共享电单车厂家

自助洗车机 自助洗车机价格

高分神器,百万考生都在用的高效记忆方法,助你过目不忘,决胜高考!

图灵教育

高考 脑科学

昇腾AI的蝴蝶效应,从智能制造开始

脑极体

想做自助洗车不知道怎么加盟?

共享电单车厂家

自助洗车加盟

智能自助洗车设备什么牌子好

共享电单车厂家

自助洗车机 智能自助洗车设备 智能共享洗车机

Apache DolphinScheduler 正式发布3.0.0 版本_云原生_Tina_InfoQ精选文章