写点什么

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:104691

评论

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

ChatGPT助力DevOps的优势与局限

互联网工科生

DevOps 自动化运维 ChatGPT

国赛线下开赛!全国智能车百度智慧交通创意组区域赛今日正式拉开帷幕!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

百度 APP iOS 端包体积 50M 优化实践 (四) 代码优化

百度Geek说

ios 代码优化 企业号 7 月 PK 榜

ChatGPT的探索与实践-业务应用篇 | 京东云技术团队

京东科技开发者

人工智能 ChatGPT 企业号 7 月 PK 榜

用ChatGPT挣钱的五种思路

高端章鱼哥

机器人 零售行业 ChatGPT

认识高性能服务治理框架 Kmesh

openEuler

Linux 开源 操作系统 openEuler 服务网格

高性能网络设计秘笈:深入剖析Linux网络IO与epoll

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

DDD架构为什么应该首选六边形架构? | 京东云技术团队

京东科技开发者

分层架构 架构设计 企业号 7 月 PK 榜 六边形架构

Last Week in Milvus

Zilliz

Milvus Zilliz AIGC cvpstack

安装Ingress-Nginx

tiandizhiguai

云原生 k8s

计算机视觉和滤帧技术

鲸品堂

计算机视觉 图像 企业号 7 月 PK 榜

3D云渲染的优点和缺点是什么?

Finovy Cloud

直播软件源码开发搭建提高安全性方案——山东布谷科技创作

山东布谷科技

源码 软件 软件开发 直播 源码搭建

聊聊Spring注解@Transactional失效的那些事 | 京东云技术团队

京东科技开发者

spring Transactional @Transactional 企业号 7 月 PK 榜 注解失效

只有1%的人才知道的ChatGPT写作技巧

俞凡

人工智能 ChatGPT

LeetCode题解:2618. 检查是否是类的对象实例,使用instanceof

Lee Chen

JavaScript LeetCode

直播回顾|用户增长之路,如何兼具体验和点击率?

HarmonyOS SDK

HMS Core

火山引擎DataLeap如何解决SLA治理难题(二):申报签署流程与复盘详解

字节跳动数据平台

大数据 数据中台 数据研发

Debian11系统编译安装Redis教程。

百度搜索:蓝易云

redis 云计算 Linux 运维 Debian

缕析条分Scroll属性 | 京东云技术团队

京东科技开发者

前端 DOM ScrollView ScrollView(滚动条) 企业号 7 月 PK 榜

小动作牵动大文明,“大运空瓶行动”从你我做起

新消费日报

ChatGPT赋能Scrum实践

俞凡

人工智能 Scrum 敏捷开发 ChatGPT

IPQ8072|XGS-PON|Dual Band 10GbE Wifi6 Industrial SBC DR8072V01

wallyslilly

自动化接口回归测试神器 AREX 使用初体验

AREX 中文社区

自动化测试 AWS 流量回放

QCN9274+QCN9074 chip: efficient and stable Wi-Fi 6 solution

wifi6-yiyi

wifi6 WiFi7

TDengine 的查询性能与老牌时序数据库相比如何?来看看

爱倒腾的程序员

数据库

亚信科技荣任「DBL电信行业工作组」副组长单位,AntDB数据库连年入选《中国数据库产品图谱》

亚信AntDB数据库

AntDB 数据库· AntDB数据库 企业号 7 月 PK 榜

Debian11系统编译安装Memcached教程。

百度搜索:蓝易云

memcached 云计算 Linux 运维 Debian

MobPush Android For Unity

MobTech袤博科技

开发者 前端 Unity Android; Java’

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