暑期 2021 参与社区:新一代工作流调度——Apache DolphinScheduler
在众多企业都在进行数字化转型的大背景下,大数据、人工智能等行业有着十分广阔的前景,其发展也可谓如火如荼。发展过程中这其中当然离不开数据采集、数据流通和数据价值挖掘等各种环节,而各环节的打通需要一个坚实底座来作为支撑,这个支撑就是今天要聊的大数据调度系统。
1
大数据调度介绍
多年来,谈到开源的大数据调度,大家可能一想到的就是 oozie、azkaban 等,这其中有没有痛点呢? 当然有,是否稳定、高可用一直都是各个调度的巨大痛点。在大数据中,其他服务可以挂,但调度不能挂的首要要求,是否能很简单易用,能不能不编程就建立工作流,可视化拖拉拽就完成工作流 pipeline 配置等痛点促使了海豚调度( DolphinScheduler 中文名 )的诞生。这也是第一个由国人主导并贡献到 Apache 基金会的大数据调度方向的项目。
Apache DolphinScheduler(incubator) 自 17 年在易观立项之初就确定了使命 - “解决大数据任务之间错综复杂的依赖关系,使整个数据处理流程直观可见”。DolphinScheduler 以 DAG(有向无环图) 的方式将 Task 组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill 任务等操作。DolphinScheduler 专注于以下 6 个主要能力
DolphinScheduler 19 年 3 月开源,8 月进入 Apache 孵化器, 据不完全统计,截止 2020 年 10 月,已有 400+ 公司在生产上使用。自今年来,有越来越多的技术小伙伴在选型调度时会主动寻求加入到 DolphinScheduler 的微信用户群社区。
说到社区,就需要提到 Apache 组织最广为传颂的成功之道 - “社区大于代码”,DolphinScheduler 目前微信用户群 4000+ 人,社区目前有 200 + 贡献者,来自 100+ 家公司、机构和高校(部分统计)
2
DolphinScheduler 特点
以 DAG 图的方式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态
支持丰富的任务类型:Shell、MR、Spark、Flink、SQL(mysql、postgresql、hive、sparksql)、Python、Http、Sub_Process、Procedure 等
支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作
支持工作流优先级、任务优先级及任务的故障转移及任务超时告警/失败
支持工作流全局参数及节点自定义参数设置
支持资源文件的在线上传/下载,管理等,支持在线文件创建、编辑
支持任务日志在线查看及滚动、在线下载日志等
实现集群 HA,通过 Zookeeper 实现 Master 集群和 Worker 集群去中心化
支持对 Master/Worker cpu load,memory,cpu 在线查看
支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计
支持补数
支持多租户
支持国际化
3
架构与工作流程图
4
部分用户案例
DolphinScheduler 在易观千帆中的应用
易观千帆是一款 App 对标分析产品。千帆是每天需要处理数百亿条数据,月活 6.2亿,6.8 PB 的大数据集群经过每天上万个任务 ETL 处理加工而产生的 SaaS 服务应用。
2018年开始使用 DolphinScheduler 来调度整个 ETL 过程。
右图是其中一条工作流
DolphinScheduler 在 360奇安信的应用
一条示例工作流:
据不完全统计,截止 2020 年 10 月,已经有 400 + 家公司及机构采用 DolphinScheduler 在生产环境使用,以下是部分案例(排名不分先后)
此外,还有 2000+ 用户注册了 demo 试用( http://106.75.43.194:8888 ),欢迎大家体验,十分欢迎对比哈。
5
DolphinScheduler Slogan
6
DolphinScheduler 所获奖项
新一代大数据任务调度 - Apache DolphinScheduler(incubator) 在 2020 年接连获得由 InfoQ 主办的 “2020 年度十大开源新锐项目” 和 “2020 年度最具人气新锐项目” 以及 OSCHINA 年度 “最佳技术团队” 称号,非常欢迎更多小伙伴加入到贡献队伍中来,为中国的开源崛起贡献自己的一份力量。
7
参与贡献
近 2 年随着国内开源的迅猛崛起,DolphinScheduler 社区迎来了十分蓬勃的发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球
参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/incubator-dolphinscheduler/issues/4124
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手
微信(easyworkflow) 手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。添加小助手微信时请说明想参与贡献哈
来吧,开源社区非常期待您的参与。
DolphinScheduler's Github Repo 传送门
↓↓↓
https://github.com/apache/incubator-dolphinscheduler
喜欢❤️ DolphinScheduler 的话,别忘了 Star 收藏一下哟~