关于版本发布:Apache-DolphinScheduler-300-正式版发布

56次阅读

共计 8886 个字符,预计需要花费 23 分钟才能阅读完成。

点亮 ⭐️ Star · 照亮开源之路

GitHub:https://github.com/apache/dol…

版本公布 2022/8/10

2022 年 8 月 10 日,Apache DolphinScheduler 在通过 3.0.0 alpha、3.0.0-beta-1、3.0.0-beta-2 一直验证之后,终于迎来了社区期盼已久的第三个大版本!

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

通过迭代的 3.0.0 正式版与此前 3.0.0 alpha 版本更新文中所形容的次要性能和个性更新、优化项和 Bug 修复大抵统一, 包含“更快、更强、更现代化、更易保护”这四个关键词总结

对于版本迭代后新增的性能和优化,本文将再做补充。

关键词:更快、更强、更现代化、更易保护

3.0.0 的关键字不变,“更快、更强、更现代化、更易保护” 的特点置信大家在应用中能够体验到。

  • 更快: 重构了 UI 界面,新 UI 不仅用户响应速度进步数十倍,开发者构建速度进步数百倍;
  • 更强: 带来了许多振奋人心的新性能,如数据质量保证、自定义时区、新增多个工作反对和多个告警插件;
  • 更现代化 :新 UI 除了更快外,大到页面布局,细到图标款式都更加现代化;
  • 更易保护 :后端服务拆分更加合乎容器化和微服务化的发展趋势,还能明确各个服务的职责,让保护更加简略。

新性能和新个性

前文已有详细描述的新性能和新个性包含:

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

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

新 UI 应用体验:

​本地启动耗时比照

​项目管理页面

​工作流定义页面

shell 工作页面

MySQL 数据源页面

AWS 反对

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

  • 针对 Amazon EMR,咱们创立了一个新的工作类型,并提供了其 Run Job Flow 的性能,容许用户向 Amazon EMR 提交多个 steps 作业,并指定应用的资源数量。

详情可见:https://dolphinscheduler.apac…

Amazon EMR 工作定义

  • 对于 Amazon Redshift,咱们目前在 SQL 工作类型中扩大了对 Amazon Redshift 数据源的反对,当初用户能够在 SQL 工作中抉择 Redshift 数据源来运行 Amazon Redshift 工作。

Amazon Redshift 反对

  • 对于 Amazon S3,咱们扩大了 Apache DolphinScheduler 的资源核心,使其不仅能反对本地资源、HDFS 资源存储,同时反对 Amazon S3 作为资源核心的贮存。详情可见:https://dolphinscheduler.apac… 中的 \`resource.storage.type\`

后续咱们将反对更多 AWS 工作,敬请期待。

服务拆分

全新的 UI 是 3.0.0 前端的最大变动,而后端最大的变动就是对服务进行拆分。思考到容器和微服务的概念越来越炽热,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.apac…

自定义时区

在 3.0.0 之前版本,Apache DolphinScheduler 默认的工夫是 UTC+8 时区,但随着用户群体扩充,海内用户和在海内发展跨时区业务的用户在应用中常常被时区所困扰。3.0.0 反对时区切换后,失去问题迎刃而解,满足海内用户和出海业务搭档的需要。例如,如当企业业务波及的时区蕴含东八区和西五区,想要应用同一个 DolphinScheduler 集群时,能够别离创立多个用户,每个用户应用本人当地时区,对应 DolphinScheduler 对象显示的工夫均会切换为对应时区的当地工夫,更加合乎当地开发者的应用习惯。

详见 链接:https://dolphinscheduler.apac…

工作定义列表

应用 Apache DolphinScheduler 3.0.0 此前版本,用户如果想要操作工作,须要先找到对应的工作流,并在工作流中定位到工作的地位之后能力编辑。然而,当工作流数量变多或单个工作流有较多的工作时,找到对应工作的过程将会变得十分苦楚,这不是 Apache DolphinScheduler 所谋求的 easy to use 理念。所以,咱们在 3.0.0 中减少了工作定义页面,让用户能够通过工作名称疾速定位到工作,并对工作进行操作,轻松实现批量工作变更。

详见 链接:https://dolphinscheduler.apac…

新告警类型反对

在 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 动静批改来扭转值。

# environment variable
export PYDS_JAVA_GATEWAY_ADDRESS="192.168.1.1"
export PYDS_WORKFLOW_USER="custom-user"
# file change
Directly change ~/pydolphinscheudler/config.yaml
# CLI
pydolphinscheduler config --set java_gateway.address 192.168.1.1
pydolphinscheduler config --set java_gateway.address 192.168.1.1 --set java_gateway.port 25334

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

# version
pydolphinscheduler verison
# 3.0.0
# config
pydolphinscheduler config --get java_gateway.address --get java_gateway.port
# The output look like below:
# java_gateway.address = 127.0.0.1
# java_gateway.port = 25333
pydolphinscheduler config --set java_gateway.address 192.168.1.1 --set java_gateway.port 25334

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

此前版本未颁布的性能和个性更新

反对 Flink 工作类型

在该版本中,咱们扩大了 Flink 工作类型,使其反对运行 Flink SQL 工作,其应用 sql-client.sh 提交工作。在此前的版本中, 咱们仅反对通过 flink cli 的形式提交工作, 这种形式须要联合资源核心, 将资源文件提交到资源核心, 而后在工作定义页面援用改资源, 对于版本化和用户通明都不是非常敌对. 随着 flink sql 逐步成为 flink 使用者的支流, 加之间接在编辑页面写 sql 更加用户通明, 咱们驳回了向社区奉献的 flink sql 性能. 3.0.0 当前的版本用户能够更加不便的应用 flink 工作了。

更多详情查看:[flink sql client](https://nightlies.apache.org/…)

对应 PR:https://github.com/apache/dol…

新增 Zepplin 工作类型

在该版本中,咱们减少了 Zeppelin 工作类型,用于创立并执行 Zeppelin 类型工作。Worker 执行该工作时,会通过 Zeppelin Cient API 触发 Zeppelin Notebook 段落。

对应 PR:https://github.com/apache/dol…

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 包
  • 将 pythonGatewayServer 迁徙到 api 服务器
  • 增加缺失的配置和连贯近程服务器文档
  • [Master/Worker] 将工作 ack 更改为运行回调
  • [Master] 增加工作事件线程池

次要 Bug 修复

  • 修复应用 S3a Minio 创立租户失败的问题
  • 修复文本文件 busy 的问题
  • 修复我的项目受权时生成一个反复受权我的项目的问题
  • 修复因无奈连贯到 postgresql 而启动服务器失败的问题
  • 修复音讯显示找不到数据源插件“Spark”的问题
  • 修复 MapReduce 生成的命令内置参数地位谬误的问题
  • 解决更改参数用户,队列在 ProcessDefinition 中生效的问题
  • 解决应用依赖组件的过程无奈在测试和生产环境之间迁徙
  • 解决了资源文件删除条件的问题
  • 修复编辑复制节点的表单时影响原始节点数据的问题
  • 解决了 Worker 资源耗尽并导致停机的问题
  • 解决了某些类型的警报无奈显示项目名称的问题
  • 3.0.0 各个部署形式呈现的问题
  • 工作组为空时页面报错问题
  • treemap 视图深度谬误问题
  • 告警信息不明确问题:告警组为空时报错信息不明确,批量删除工作流有异样时报错信息不明确,租户内容错长的谬误提醒,删除
  • 参数校验问题:数据源核心的参数校验问题,批改明码时明码不统一提醒,发告警前校验 alert scriptb
  • Python api:不能设置 release state 问题,本地参数有值然而校验失败问题
  • token 查问不遵循时区问题
  • 修复 HTTPS 和 HTTP 字符串辨认问题
  • 修复 alert server 衰弱监测生效问题
  • 修复 condition 工作分支失败问题
  • 修复 docker 镜像不反对多平台问题
  • 修复带有工作组优先级的工作流创立时不能正确写数据库的问题
  • master 工作的生效问题
  • 修复串行期待不运行的问题
  • 时区问题:调度时区谬误问题,日志减少时区反对
  • 从新运行、暂停工作流实例失败问题
  • 资源核心实例化失败问题
  • 修复邮件告警模板分隔线问题
  • 修复 Standalone 模式下数据初始化问题
  • 修复监控核心 DB 不存在时的页面展现问题
  • 修复创立工作流参数有效问题
  • 修复 K8S 部署时 zookeeper 端口异样问题
  • 修复 Standalone 模式下服务启动失败问题
  • 修复 LDAP 登录失败问题
  • Python api: 修复同一个我的项目下不同工作流的工作组件名称不反对重名问题
  • Python api: 修复 SQL 工作组件 SQL 类型谬误问题
  • 修复资源文件重命名表单异样问题
  • 修复依据定时设置获取工作流可执行工夫谬误问题
  • 降级了 Logback、Log4j 等模块依赖
  • 修复工作失败问题
  • 修复好 HDFS NPE 问题
  • 修复工作组异样导致 master 死锁问题
  • 修复一些列稳定性问题

文档批改

  • 更正部署文档
  • 修复、更新局部应用文档:WebexTeams 中文文档,本地参数、全局参数文档,Kubernetes FAQ 文档,Spark 注意事项文档,DataX 应用文档,删除 Flink API 文档,修复 open-api 的谬误,修复数据品质中的谬误文档;新增 stand-alone 切换数据库文档;新增 shell 中判断 Yarn 运行状态文档;新增更新零碎截图; 参数传递、全局参数、参数优先级文档,告警组件向导、Telegram、钉钉告警文档,告警 FAQ 文档,Shell 组件文档,Switch 工作组件文档,资源核心配置详情文档,工作流定义补数文档
  • 更正局部开发文档:明确反对的操作系统,修复开发环境搭建文档,新增本人构建 docker 镜像文档

Release note

GitHub: https://github.com/apache/dol…

下载:https://dolphinscheduler.apac…

感激贡献者

Aaron Lin、Amy0104、Assert、BaoLiang、Benedict Jin、BenjaminWenqiYu、Brennan Fox、Dannila、Desperado2、Devosend、DingPengfei、DuChaoJiaYou、EdwardYang、Eric Gao、Frank Chen、GaoTianDuo、HanayoZz、HeChuan、HomminLee、Hua Jiang、Hwting、Ivan0626、Jeff Zhan、Jiajie Zhong、JieguangZhou、Jiezhi.G、JinYong Li、J·Y、Kerwin、Kevin.Shin、KingsleyY、Kirs、KyoYang、LinKai、LiuBodong、LongJGun、Luke Yan、Lyle Shaw、Manhua、Martin Huang、Maxwell、Molin Wang、Mr.An、OS、PJ Fanning、Paul Zhang、QuakeWang、ReonYu、SbloodyS、Sheldon、Shiwen Cheng、ShuiMuNianHuaLP、ShuoTiann、SongTao Zhuang、Stalary、Sunny Lei、Tom、Town、Tq、WangJPLeo、Wenjun Ruan、X&Z、XiaochenNan、Yanbin Lin、Yao WANG、Yiming Guo、Zonglei Dong、aCodingAddict、aaronlinv、aiwenmo、caishunfeng、calvin、calvinit、cheney、chouc、chuxing、czeming、devosend、exmy、gaojun2048、guodong、guoshupei、hjli、hstdream、huangxiaohai、janeHe13、jegger、jiachuan.zhu、jon-qj、juzimao、kezhenxu94、labbomb、leiwingqueen、lgcareer、lhjzmn、lidongdai、lifeng、lilyzhou、litiliu、liubo1990、liudi1184、longtb、lvshaokang、lyq、mans2singh、mask、mazhong、mgduoduo、myangle1120、naziD、nobolity、ououtt、ouyangyewei、pinkhello、qianli2022、qinchaofeng、rickchengx、rockfang、ronyang1985、seagle、shuai hou、simsicon、sneh-wha、songjianet、sparklezzz、springmonster、sq-q、syyangs799、uh001、wangbowen、wangqiang、wangxj3、wangyang、wangyizhi、wind、worry、wqxs、xiangzihao、xiaodi wang、xiaoguaiguai、xuhhui、yangyunxi、yc322、yihong、yimaixinchen、youzipi、zchong、zekai-li、zhang、zhangxinruu、zhanqian、zhuxt2015、zixi0825、zwZjut、天仇、小张、弘树丶、张豪杰、旭旭同學、时光、旺阳、王强、百岁、秋天、罗铭涛、阿福 Chris、陈家名、陈爽、飞侠美如画

参加奉献

随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真挚欢送酷爱开源的搭档退出到开源社区中来,为中国开源崛起献上一份本人的力量,让外乡开源走向寰球。

参加 DolphinScheduler 社区有十分多的参加奉献的形式,包含:

奉献第一个 PR(文档、代码) 咱们也心愿是简略的,第一个 PR 用于相熟提交的流程和社区合作以及感触社区的友好度。

社区汇总了以下适宜老手的问题列表:https://github.com/apache/dol…

非老手问题列表:https://github.com/apache/dol…

如何参加奉献链接:https://dolphinscheduler.apac…

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

参加开源能够近距离与各路高手切磋,迅速晋升本人的技能,如果您想参加奉献,咱们有个贡献者种子孵化群 (Leonard-ds),手把手教会您 (贡献者不分程度高下,有问必答,要害是有一颗违心奉献的心)。

增加小助手时请阐明想参加奉献。

来吧,开源社区十分期待您的参加。

流动举荐

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

正文完
 0