Apache DolphinScheduler VS WhaleScheduler

简介: Apache DolphinScheduler VS WhaleScheduler

我是Apache DolphinScheduler的PMC和Apache的导师,一直致力于帮助国内的开源项目在Apache孵化器孵化,并在Apache峰会上担任出品人。致力于让世界认识到中国同样拥有卓越的开源技术。


我目前也在白鲸开源担任联合创始人,一直秉持着通过开源商业化让开源可持续发展的理念,白鲸开源致力于提供Dataops的全链路解决方案。我们目前主要参与了两个Apache的顶级项目——其中之一就是Apache DolphinScheduler。

DataOps,这一概念源于DevOps,旨在构建从数据开发到部署上线直至生产流程的端到端打通。在现行的Apache DolphinScheduler中,我们已成功地简化了开发到上线的流程,通过使用Gitlab或私有仓库,可以便捷地降低成本、提升效率,并增强dataops的能力。

项目简介

Apache DolphinScheduler起源于2017年,并在2021年成为Apache的顶级项目。它是首个由国人主导的、也是目前国内最受欢迎的调度项目之一。其市场占有率高达90%,反映了其在行业中的影响力和认可度。

在项目开源之初,设定的核心目标包括:

  • 易用性:我们希望无论开发、运维还是使用,都尽可能简单直观。
  • 高可用:为满足大数据平台高稳定性的需求,我们致力于实现调度系统的高可用性。
  • 多样的任务类型和依赖支持:包括跨工作流依赖和自依赖等。
  • 完善的任务日志和告警机制:能够实时直观地把握任务的运行状态。

回望过去,至今我们已实现了2017年初设定的多数功能标准,并在开源版本中进行了完整的展现。

技术架构及迭代历程

关于架构的演进,我们经历了三次重大的迭代,每次都持续了半年至一年的时间。在最初的设计中,我们采用无中心化的架构,Master Server和Work Server之间通过一个中间的消息队列(TaskQueue)进行隔离。

但在1.x版本中,我们发现Work Server直接与数据库交互会产生一些问题,例如在面对大量机器时,数据库链接可能饱和,产生巨大压力。因此,在后续的版本中,我们对Work Server进行了重构,移除了其与数据库的直接交互,以解决这一痛点。

在最近的版本中,我们进一步优化了Apache DolphinScheduler的性能和功能。到现在,尽管我们已经发布了3.0版本,1.x版本还是停止了维护(版本维护的精力不够),但通过社区的努力,我们已经推出了2.x和3.x的多个小版本。社区已经拥有500多名代码贡献者和120多名文档贡献者,覆盖了包括电信、新能源、物流等多个行业。

2.0版本

架构2.0的设计至今仍然在继续沿用。其核心概念包括:

  • • 使用Master Server和Work Server组件。
  • • 当Master有任务时,它会直接分发给Work Server进行处理。
  • • 工作完成后,Work Server首先回应一个Ack,并返回相应的Response。
  • • 这个版本的特点是不再与数据库直接关联,这是在架构上的重要设计变化。

不过,由于时间限制,我不会在这里详细解释这个架构。

3.2.0 版本

3.2.0版本的重点更新如下:

  • 功能注册中心:引入了ETCD和JDBC作为注册中心,导致ZK的地位逐渐减弱,我们考虑将ZK完全替换。
  • 高可用性:Alert Server从单点模式到HA模式。
  • 数据库优化:Work Server已经移除了对Dao的依赖,从而彻底断开了与数据库的关联。
  • 资源中心:支持了OSS等对象存储,并增加了对各种数据源的支持,例如,Mysql的Connector现在也支持Doris

此外,我们为新版本增添了许多其他功能,如动态任务配置、数据源支持、多任务类型、机器学习功能等。此版本的迭代周期为一年,因此功能非常丰富。

社区对3.2.0版本做出了巨大的贡献。一些值得一提的改进包括:

  • • 数据迁移工具如Datax现在支持Presto和Databend。
  • • SQL增加了支持多语句的切割。
  • • 引入了远程日志线,允许日志存储在远端。
  • • 参数优化,尤其是日期参数。
  • • 自定义K8S的任务标签

此外,前端功能得到了增强,例如,从工作流定义中可以直接跳转到其所有的工作流实例等,包括社区吐槽了很久的从Open API去调工作流或者是运行的时候,拿不到返回实例的ID等等问题,这些都在3.2.0版本解决了。

实际应用与客户接纳

Apache DolphinScheduler在商业领域已经获得了显著的认可和广泛的应用。部分大型企业,每天需处理数百万的任务调度量,验证了其在高负载场景下的稳定性和效率。

例如,我们的客户——平安和SHEIN——这些具有海外业务的公司,已从其他流行的工作流调度系统(如Airflow)迁移到DolphinScheduler平台。这不仅体现了DS的强大功能和优越性能,也反映了其在国际市场上的竞争力。


开源版与商业版对比

尽管开源版已经包含了丰富的功能,但商业版考虑到了更多的企业需求,基于最新3.2.0版本开发了更多的功能。商业版的一些亮点包括:

  • • 支持更多的数据库,如Teradata、达梦和TDSQL
  • • 支持复杂的CDC能力
  • • 增强的IDE功能,整合了VS Code,并提供了调试功能。
  • • OPS功能,实现与Git的集成。
  • • 更为复杂和完善的权限控制。

总的来说,这次的架构更新为用户带来了更强大、更稳定的系统体验。而社区的贡献也显示出了这个项目强大的生命力。


业务日期和运行态管理

在开源版本中,大多数用户倾向于使用定时日期。然而,在商业版本中,我们引入了“业务日期”这一概念,以及与之关联的翻牌机制和更完善的运行态管理。

例如,对于一些需在特定时间点完成的任务(如监管报送等高优先级任务),我们实现了工作流的优先级管理,并确保与其相关的所有节点也将优先执行.


强大的血缘功能

我们在商业版本中投入了大量精力以强化血缘功能。用户能够查看所有依赖的任务及其依赖关系,以及追踪到其祖先。

这一点在开源版中可能无法实现,尤其在跨工作流的依赖关系管理方面。

数据源的增强支持

在数据源的支持方面,商业版显著超过开源版,支持的数据源数量大约是后者的数倍。WhaleStudio 提供了对 IDE 的增强支持,例如在线调试 IDE 的能力,这是我们认为对开发者极为有利的一个特点。

重新塑造权限和审计功能

在我们的商业产品—WhaleStudio中,用户角色权限和审计功能得到了特别的重视。这不仅是商业版必备的一项能力,即便在开源版中我们也实现了审计功能(尽管其功能相对较弱)。

商业版的 WhaleStudio 包含两个主要模块:WhaleScheduler 和 WhaleTunnel,它们分别对应于开源的 Apache DolphinScheduler 和 Apache SeaTunnel 。

通过增加更广阔的生态圈和支持更完善的 DataOps 流程,以及可操作性时间管理(如支持日历、业务日期翻牌)等功能,我们力图在商业版中提供更全面的支持。

安全漏洞扫描

安全方面,商业版进行了漏洞扫描,而开源版通常不会进行此类扫描,因为其成本较高。

我们在保证商业版的安全性方面做了很多工作,以确保能够适应中国的国情和满足信创的要求。

与上下游生态的融合

我们已与数十家上下游生态企业实现了打通,尤其在数据同步和调度方面,我们努力打通各种数据库和各类SaaS服务,包括FTP、HTTP等,确保与上下游生态的关系非常紧密。




社区全球化发展

社区目前已展现出全球化的迹象,服务着来自世界各地的用户,包括印度、韩国等国家的公司。我们的社交媒体平台,如Twitter、B站等,也为全球用户提供了便捷的信息查询通道。

如果您在使用 Apache DolphinScheduler 遇到以下问题,非常欢迎联系我们:

1、调度系统不够稳定2、调度系统出现性能瓶颈3、Apache DolphinScheduler 版本过低想升级4、遇到问题需要产品技术支持服务和培训5、信创适配,商业版支持全栈信创6、Apache DolphinScheduler 现有功能不能满足您的需求等

相关文章
|
负载均衡 Java 应用服务中间件
Caddy Web服务器深度解析与对比:Caddy vs. Nginx vs. Apache
Caddy Web服务器深度解析与对比:Caddy vs. Nginx vs. Apache
963 0
|
测试技术 Apache 开发工具
Apache Cordova开发环境搭建(二)VS Code
原文:Apache Cordova开发环境搭建(二)VS Code 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011127019/article/details/56335719 ...
3419 0
|
3月前
|
应用服务中间件 Apache PHP
Apache vs Nginx: 实际考虑因素
Apache vs Nginx: 实际考虑因素
100 0
|
6月前
|
应用服务中间件 网络安全 Apache
构建高性能Web服务器:Nginx vs Apache
【5月更文挑战第16天】Nginx与Apache是两种主流Web服务器,各具优势。Nginx以其轻量级、高并发处理能力和反向代理功能见长,适合大型网站和高并发场景;而Apache以功能丰富、稳定性强闻名,适合企业网站和需要多种Web服务功能的场景。在性能上,Nginx处理高并发更优,Apache则可能在高负载时遭遇瓶颈。在选择时,应根据实际需求权衡。
|
5月前
|
SQL 资源调度 分布式计算
Apache DolphinScheduler 【安装部署】
Apache DolphinScheduler 【安装部署】
|
6月前
|
分布式计算 测试技术 Apache
Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准
Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准
113 4
|
6月前
|
关系型数据库 Apache DataX
BDCC - 数据集成领域的主流中间件_ Apache SeaTunnel vs Flink CDC vs DataX vs Apache Sqoop vs Apache Flume
BDCC - 数据集成领域的主流中间件_ Apache SeaTunnel vs Flink CDC vs DataX vs Apache Sqoop vs Apache Flume
587 0
|
6月前
|
数据可视化 数据处理 Apache
初窥Apache DolphinScheduler
初窥Apache DolphinScheduler
95 0
|
人工智能 资源调度 大数据
Apache DolphinScheduler 在大数据环境中的应用与调优
Apache DolphinScheduler 在大数据环境中的应用与调优
220 0
|
SQL 分布式计算 监控
EMR Workflow 开启公测,100%兼容开源 Apache DolphinScheduler
EMR Workflow 是一个全托管的工作流和任务调度服务,100%兼容开源 Apache DolphinScheduler。它提供了易于使用的调度服务,您可以通过可视化的操作界面轻松地管理工作流和任务,高效构建数据仓库,并为生产任务的稳定运行提供保障。
681 1