点亮 ⭐️ Star · 照亮开源之路GitHub:https://github.com/apache/dolphinscheduler

在 ApacheCon Asia 2022 Meetup上,来自联想的数据架构师、Apache DolphinScheduler PMC & Committer 、Apache Local Community 北京成员 李岗 老师分享了 Apache DolphinScheduler 在联想作为统一调度中心的落地实践。
感谢本文整理者 关博 对社区的贡献,您的贡献是社区不断前进的动力!
统一调度中心的需求背景介绍 为什么会选择 Apache DolphinScheduler 作为统一调度中心 Apache DolphinScheduler 在联想的落地实践中涉及的改造点 后期规划(Roadmap)
1
统一调度中心的需求背景介绍
01
需求收集
支持定时通知任务。 支持 ETL 任务。 支持 HTTP 任务执行链。
对任务实时监控。 管理多种任务类型。 业务系统开发的定时任务方便统一管理。 任务脚本便于管理和维护。
任务调度需要保证可靠性。 上下游依赖的任务需要事件通知触发机制。
02
需求抽象汇总

Master 节点支持 HA 模式。 Worker 节点支持分布式。
支持多种任务类型。 轻松定义复杂的任务依赖关系。
易操作,通过 UI 方便手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作。
支持多租户。
随着业务任务接入越来越多,方便线性扩展集群,保证任务的性能。
便于业务系统二次开发。
2
为什么会选择DolphinScheduler
作为统一调度中心?
调度系统调研对比 DolphinScheduler 核心功能介绍 DolphinScheduler 架构设计 DolphinScheduler 社区发展
01
调度系统调研对比


高可靠,支持集群HA,集群去中心化。 简单易用,DAG 监控界面,所有流程定义可视化,通过托拉拽任务定制 DAG,通过 API 与第三方系统对接,支持一键部署。 丰富的使用场景,支持多租户、多种任务类型、支持暂定恢复等操作。 高扩展,Master 和 Worker 支持动态上下线、支持自定义任务类型。 社区活跃度高。
02
DolphinScheduler 核心功能介绍




任务结果参数的传递。 新增工作流血缘关系 UI,可以清晰的看到工作流的状态(在线、下线)。 新增任务类型:Switch(分支节点)、SeaTunnel(原名WaterDrop)(ETL节点)。 拆分工作流定义和任务之间的关系。 新增工作流版本管理。


3
DolphinScheduler 架构设计
01
社区贡献



新增可扩展设计能力

高性能:Master 重构
Master 重构-去分布式锁方案

Master 重构-线程池工作关系

02
DolphinScheduler 社区发展

03
为什么选择DolphinScheduler?
支持复杂的依赖调度。 支持任务失败重试。 任务告警机制。 支持资源文件在线上传和管理。 支持更多的丰富任务类型,如:Spark、shell、MR、Hive、python 等。 支持集群高可用。 可视化 DAG 界面。 支持多租户、权限管理。 简单易用、高扩展。
4
DolphinScheduler 在联想的
落地实践中涉及的改造点
HTTP 任务参数传递 引入 Java Client 接入安全认证 项目全局参数改造
01
HTTP 任务参数传递


02
引入 Java Client


03
接入安全认证
04
项目全局参数改造





5
后期规划(Roadmap)
UI 重构 支持数据质量 支持任务组 多种任务类型
01
UI 重构

02
数据质量

03
任务组


04
Roadmap


将遇到的问题通过 GitHub 上 issue 的形式反馈出来。 回答别人遇到的 issue 问题。 帮助完善文档。 帮助项目增加测试用例。 为代码添加注释。 提交修复 Bug 或者 Feature 的 PR。 发表应用案例实践、调度流程分析或者与调度相关的技术文章。 帮助推广 DolphinScheduler,参与技术大会或者 meetup 的分享等。
比如添加代码注释或找到带有 ”easy to fix” 标记或一些非常简单的 issue(拼写错误等) 等等,先通过第一个简单的 PR 熟悉提交流程。
参与贡献
随着国内开源的迅猛崛起,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/community/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。
添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
< 🐬🐬 >
更多精彩推荐
☞ApacheCon Asia 2022 精彩回顾 | DolphinScheduler 在 T3 出行一站式平台中的应用
☞ApacheDolphinScheduler 整合大数据生态安全门 Apache Knox,统一对外服务
☞ApacheDolphinScheduler 整合大数据生态安全门 Apache Knox,统一对外服务
☞名额已排到10月 | Apache DolphinScheduler Meetup分享嘉宾继续火热招募中
☞小海豚“变身”全新智能调度引擎,深入浅出在DDS的实践开发应用
☞对话 Contributor| 中国团队贡献的开源项目, 当然要支持
☞自动更新选股模型,实时监控,基于 Apache DolphinSchedule 打造机器学习智能选股系统
☞开源大数据 Studio 应用开发: Apache Dolphinscheduler + Notebook





