公司新闻

News

新闻中心

IM电竞Apache DolphinScheduler 300 正式版发布!

日期:2022-08-12 10:51

  3.0.0 正式版本发生了自发版以来的最大幅度变动,新增了众多全新功能和特性,旨在为用户带来全新的体验和更多价值。

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

  3.0.0 的关键字不变,“更快、IM电竞更强、更现代化、更易维护”的特点相信大家在使用中可以体验到。

  重构了 UI 界面,新 UI 不仅用户响应速度提高数十倍,IM电竞开发者构建速度提高数百倍;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  解决更改参数用户,队列在 ProcessDefinition 中失效的问题

  告警信息不明确问题:告警组为空时报错信息不明确,批量删除工作流有异常时报错信息不明确,租户内容错长的错误提示,删除

  参数校验问题:数据源中心的参数校验问题,修改密码时密码不一致提示,发告警前校验 alert scriptb

  Python api:不能设置 release state 问题,本地参数有值但是校验失败问题

  Python api: 修复同一个项目下不同工作流的任务组件名称不支持重名问题

  修复、更新部分使用文档:WebexTeams 中文文档,本地参数、全局参数文档,Kubernetes FAQ 文档,Spark 注意事项文档,DataX 使用文档,删除 Flink API 文档,修复 open-api 的错误,修复数据质量中的错误文档;新增 stand-alone 切换数据库文档;新增 shell 中判断 Yarn 运行状态文档;新增更新系统截图; 参数传递、全局参数、参数优先级文档,告警组件向导、Telegram、钉钉告警文档,告警FAQ文档,Shell组件文档,Switch任务组件文档,资源中心配置详情文档,工作流定义补数文档

  更正部分开发文档:明确支持的操作系统,修复开发环境搭建文档,新增自己构建 docker 镜像文档

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

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

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

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

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

  Apache DolphinScheduler社区联合了Apache Kylin社区,共同举办Meetup主题为《大数据底座的构建与展望,助力企业数字化转型》即将重磅开启!我们也有幸邀请到了来自伊利、T3出行、白鲸开源、Apache Kylin社区等企业的资深大数据工程师与开发者,从数据分析引擎、数据调度、数字化转型、维护开源视角等话题探讨在两个开源项目的开发实践。

Copyright © 2002-2021 IM电竞有限公司 版权所有 陕ICP备18004709号