仅展示部分案例,文末附完整版🔻
引言
数据驱动时代,高效的数据处理和分析能力已成为各行各业的核心竞争力。而高效的数据处理离不开强大的工作流调度系统。Apache DolphinScheduler 正是这样一款功能强大的分布式工作流调度平台,它以其灵活的架构、强大的功能和易于使用的界面,帮助企业和组织高效地管理和调度各种复杂的数据处理任务。
本案例合集由Apache DolphinScheduler社区发起,白鲸开源参与撰写,旨在通过多个真实的应用场景,展现Apache DolphinScheduler的强大功能和广泛应用。我们将深入探讨其如何在不同行业和业务场景中解决实际问题,提升数据处理效率,降低运营成本,并最终为业务决策提供有力支撑。无论是大型企业的数据仓库建设,还是小型团队的机器学习实验,您都将在这里找到 DolphinScheduler如何帮助用户克服挑战,取得成功。希望本合集能够帮助您更好地了解Apache DolphinScheduler,并为您的数据处理工作提供有益的参考。
特别鸣谢
在此,我们特别鸣谢为本案例合集提供案例详情和资料的资深用户和社区贡献者,以及北京白鲸开源科技有限公司的大力支持。感谢你们为案例合集提供的翔实数据与技术细节,使得我们的案例研究更加丰富和深入。以下是对各位贡献者的诚挚感谢:
黄立、单葛尧、张琦、尚志忠、李庆旺、刘洋、李贤利、王兴杰、杨佳豪、刘坤元、张迎、聂励峰、陈利鑫、曾辉
你们的贡献不仅极大地丰富了我们的案例库,提升了社区的知识水平,也激励着更多的人追求卓越。你们的努力是推动我们社区不断前进的重要力量。再次感谢你们的慷慨分享和宝贵支持!
项目介绍
Apache DolphinScheduler:下一代分布式工作流调度平台
Apache DolphinScheduler是基于Apache开源社区理念打造,全球知名的DataOps领域开源项目。作为一个云原生分布式去中心化,易扩展的可视化DAG工作流任务调度平台,它致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。独特的分布式架构设计和简洁的产品设计,使得其具备高可靠性、简单易用、高扩展性、丰富的使用场景等特性。
DolphinScheduler 支持多种编程语言和任务类型,包括但不限于Shell、Python、Java、SQL 等。并支持多种数据库和消息队列,具有良好的扩展性和兼容性。
通过分布式架构、高可用设计和强大的功能,DolphinScheduler 为用户提供了一个稳定可靠、易于使用和高效的数据处理平台。
- 技术架构: DolphinScheduler 采用基于 Master-Worker 架构的分布式设计,具有以下核心组件:
- Master Server:负责任务的调度和管理,维护任务的执行状态,处理任务之间的依赖关系,并分发任务到Worker节点执行。
- Worker Server:负责实际执行由Master Server分发的任务。Worker会从Master获取任务,执行后将结果返回给Master。
- API Server:提供RESTful API接口,允许用户通过编程方式与DolphinScheduler交互,实现任务的提交、查询等操作。
- Database:存储任务定义、执行历史、用户信息、权限配置等数据。DolphinScheduler支持多种数据库,如MySQL、PostgreSQL等。
- ZooKeeper:用于分布式环境下的协调服务,主要负责维护集群状态、配置信息等,对于DolphinScheduler的高可用性和故障恢复至关重要。
- Alert Server:负责监控任务的执行状态,当任务失败或超时时,发送告警通知给用户。
- UI (User Interface):提供用户界面,允许用户可视化地创建、管理和监控任务工作流。
- 日志系统:记录任务执行的详细日志,便于用户追踪任务的执行情况和调试问题。
- 调度策略和资源管理:包括任务的优先级、资源分配、故障转移策略等,确保任务能够高效、稳定地执行。
Apache DolphinScheduler技术架构图
突出能力:
- 强大的可扩展性: 支持大规模任务调度和海量数据处理。
- 高可靠性和高可用性: 采用分布式架构和容错机制,确保系统稳定运行。
- 易用性: 提供直观易用的可视化界面和丰富的 API 接口。
- 灵活性: 支持多种任务类型和复杂的依赖关系。
- 丰富的监控和告警机制: 实时监控任务执行状态,并及时发出告警。
- 完善的权限管理: 提供细粒度的权限控制,保障数据安全。
- 活跃的社区支持: 拥有庞大的社区,提供及时的技术支持和帮助。
社区支持:
截至目前,Apache DolphinScheduler社区围绕项目发展,在开源力量的推动下发展迅速,以开源社区的模式聚合全球各行业、各领域贡献者参与共建,共同致力于将其打造成为极致简单易用、稳定可扩展的DataOps平台。
Apache DolphinScheduler已累计在3000多家公司生产环境中作为企业的核心调度系统,包括IBM、腾讯、科大讯飞、美团、360、联通、顺丰等企业,覆盖金融、电信、零售、云计算、数据处理等广泛领域。
综上,Apache DolphinScheduler是一款功能强大、易于使用且具有高度可扩展性的分布式工作流调度平台,它能够有效地解决大规模数据处理任务的调度和管理难题,为企业级数据处理提供可靠的保障。此外,长期活跃的社区和持续的开发保证了其长期发展和稳定性。
案例合集
1. 长安汽车千万级数据接入能力智能网联汽车云平台引进核心调度系统
💡 项目亮点:信号采集时间降至秒级、毫秒级 单车数据量指数级增长
作者|黄立
背景需求
随着国家“双碳”战略的推进,新能源汽车产业低碳发展也成为经济社会全面绿色低碳转型的重要方面。新形势下,长安汽车向智能低碳出行科技公司的转型,智能网联车数据规模变得越来越庞大。同时,新能源车型的逐步接入为TSP平台的数据接入和分析能力带来了新的挑战。这种变化的显著特征是常规信号采集时间从30秒降至秒级甚至毫秒级,单车数据量也呈现出指数级增长。因此,为了解决这一业务挑战,长安汽车需要采取一系列措施来优化数据采集系统,提高数据处理能力,确保长安汽车能够顺利实现转型目标。
解决方案
为应对百万级车辆海量车况数据、埋点数据的高效传输、存储、处理,长安汽车软件科技公司引入了开源项目Apache DolphinScheduler作为智能网联业务的核心调度引擎,实现数据任务的灵活编排、调度,赋能智能汽车产品研发、故障诊断等业务。
- 跨集群网关机管理云上云下两套集群
长安汽车目前采用混合云架构,公有云存储近期热数据,私有云存储全量数据。私有云需周期性拉取公有云热数据,进行增量存储与数据分析。公有云业务集群需定期获取私有云分析数据,提供业务数据支撑。在混合云架构下,在如何保证数据稳定流转、数据周期性双向传输这一问题上,长安汽车采用DolphinScheduler通过跨集群网关机的方式,管理云上云下两套集群。
通过一套Web端的调度实例构建,实现私有云分析集群周期调度从公有云Hbase、Hive、HDFS及时拉取增量热数据,公有云集群针对依赖数据及时获取私有云分析数据。
图1 混合云架构数据流转
- 分析数据与开发代码统一管理调度
长安汽车目前采用Doris实现BI报表、多维分析等业务场景,主要数据来源为当前私有云分析集群的离线ETL任务结果,中间数据或结果数据需定期调度导入MPP分析型数据库,分析SQL、Py代码统一由Dolphinscheduler资源中心管理,资源文件访问权限划分给不同业务团队,实现分析数据与开发代码统一管理调度。
图2 分析数据统一调度
- 管理AI预测模型
长安汽车利用Dolphinscheduler管理预测模型,构建定时任务工作流,从集群抽取模型预测所需信号数据,构建数据任务依赖管理,保障预测数据为已预处理数据,到多子模型串联调度预测,再到预测结果整体汇总输出,形成从源头数据输入到最后预测结果输出的周期性运行,赋能车联网智能维保、亏电预测等业务。
图3 AI赋能模型预测
- 多源数据集成
通过Dolphinscheduler配搭数据集成工具SeaTunnel和Sqoop实现多源数据集成,构建统一数据平台,实现对各大事业部同步基础数据、分析数据,监控数据流向,保障数据安全,实现调度平台管理数据定期流入抽取,对统一外数据同步的数据管理,以及定时数据转发,形成数据流转。
图4 数据集成对外同步
用户收益
安汽车在采用了Apache DolphinScheduler作为核心调度系统之后,实现了在混合云架构、私有云与公有云跨集群条件下,进行数据双向传输,支撑数据业务、数据分析、全量数据存储;统一了资源文件管理,实现SQL文件、Python代码、预测模型等资源分团队管理;并构建了统一数据平台,保障数据流入与转发的安全与和可追溯性。
了解更多:DolphinScheduler×长安汽车 | 千万级数据接入能力智能网联汽车云平台引进核心调度系统
2. Apache Dolphinscheduler在某新能源企业的落地与实践
💡 项目亮点:简单易用 丰富的功能设计 高效的数据同步效率
作者|单葛尧
背景需求
某企业深耕于新能源制造行业,随着业务的不断发展,日益增长的跨基地生产数据同步及计算对该企业的整体数据架构带来了极大的挑战。其数据架构最大的特点为跨基地的多机房设计,运维难度高,资源需求量大,而传统意义上的多机房数据架构的主要矛盾是跨机房网络带宽不足、稳定性差与离线海量数据处理任务高效产出之间的矛盾。
解决方案
解决多机房主要矛盾面临的核心问题是如何减少跨机房带宽的消耗,防止异地出现多次数据交换而带来的额外开销。此前,该企业原有的调度系统来自于供应商提供的基于Azkaban的开发的平台,但是该平台存在着显著的问题,如单点故障、缺乏资源管理与隔离机制、可伸缩性限制、可扩展性限制,以及社区及文档的支持度较差等。
根据以上对于扩展性、易用性及团队技术栈的整体考虑,该企业选择了Apache Dolphinscheduler,并准备采用白鲸开源团队参与开发的另一款数据集成工具Apache SeaTunnel,用于解决其目前应用DataX组件运行hive2doris、hive2clickhouse任务时存在的单点性能瓶颈及难以全局监控资源使用量的问题。基于Apache Ambari和HDP,该企业构建了大数据架构体系,并在Ambari中集成了对于DolphinScheduler的配置与监控。
该企业在Hive 3.1.3与Hadoop 3.3.4的基础上构建了现有的数仓体系,以DolphinScheduler为调度工具,Sqoop与SeaTunnel做数据集成工具,Spark3与Tez作为离线计算引擎,并在此基础上搭建了Iceberg数据湖,后期考虑用Iceberg替代目前的部分离线业务。在引入初期投入了5台物理机器,搭建了3Master、5Worker的架构,并进行了二次改造,以更加符合应用场景的需要。
用户收益
相较于以前的旧架构,Dolphinscheduler给该企业带来了全新的体验,极大提升了数据开发效率,实现了易于扩展的插件机制、易用的补数能力、完善的告警机制,以及灵活的执行与重试机制。
了解更多:
Apache Dolphinscheduler在某新能源企业的落地与实践
3. 每日互动基于DolphinScheduler 从容应对 ClickHouse 大数据入库瓶颈
💡 项目亮点:零压入库 算力转移 调度优化 数据质量监控 高效资源管理
作者|单葛尧
背景需求
每日互动公司在处理大数据入库时遇到了性能瓶颈。随着数据量的激增,尤其是在日入库量达到TB级别的情况下,ClickHouse的硬件敏感性、写入瓶颈和内存需求等问题逐渐暴露,影响了数据的时效性和业务查询的性能。此外,数据堆积和补数问题、补数和依赖管理困难也对数据的准确性和及时性构成了挑战。
解决方案
为了解决这些问题,每日互动采用了Apache DolphinScheduler作为调度引擎,结合ClickHouse构建了零压入库平台。这个平台的核心是“算力转移”,即将ClickHouse入库时的资源消耗转移到大数据平台Yarn中,减少对ClickHouse资源的占用。具体实现包括:
零压入口平台架构
- 调度引擎与BI引擎:使用DolphinScheduler调度ClickHouse和Nebula的Worker执行节点。
- 中心服务层:集成调度和数据管理功能,负责任务配置、日志管理及一键补数。
- 数据质量模块:监控数据入库趋势、链路检查、大小与耗时分析,并通过多种告警方式提供告警。
- 业务使用层:通过模板化开发,标准化ClickHouse和Nebula的入库任务。
用户收益
通过实施零压入库方案,每日互动实现了以下收益:
- 内存和CPU消耗降低:通过优化资源配置,减少了内存和CPU的使用,提高了数据处理效率。
- 数据处理效率提升:数据处传输时间从35小时降至1.5小时,效率提升了95%;数据入库耗时从50分钟降至20分钟,并且这一过程几乎不消耗内存;合并时间更是从6小时缩短至2小时,极大地提升了数据处理的时效性。
- 数据质量与一致性:通过数据强一致性检查,确保了入库数据的准确性。
- 资源管理与扩展:通过Yarn资源的复用,提升了计算效率,可能将数据处理时间缩短至两个小时。
- 稳定性提升:内存清理策略有效降低内存水位,确保了机器的良好状态,提高了系统的容错性。
了解更多:每日互动基于 Apache DolphinScheduler 从容应对 ClickHouse 大数据入库瓶颈
4. 中电信翼康基于Apache Dolphinscheduler重构“星海·济世医疗数据中台”
💡 项目亮点:日均1000+的任务被调度处理 覆盖4条产品线 20多个业务系统 显著提升研发效率
作者|尚志忠
背景需求
在医疗行业数字化转型的浪潮中,数据中台成为了实现数据互通与共享、构建高效数据应用的关键。中国电信翼康在打造“星海·济世医疗数据中台”时,面临着数据处理流程长、依赖关系复杂、传统调度工具支持组件有限、多系统间缺乏统一调度机制等挑战,而原来所采用的Azkaban缺点不可忽视,如无可视化界面、任务调度多时易卡死、部署复杂、无法暂停任务、集群扩展差等。
解决方案
为了解决上述问题,翼康选择了Apache DolphinScheduler作为其数据中台的调度系统。翼康对DolphinScheduler进行了二次开发,并据实际业务需要将原有Azkaban中的调度任务平行迁移到DolphinScheduler中。
翼康基于Apache DolphinScheduler的二次开发包括:
- 项目级别变量:动态扩展项目中项目级别参数的使用,并在列表中展示实际值。
图片
定义不同的项目级参数,展示实际值 - Java类任务:支持使用单文件和JAR包作为程序入口,配置主程序参数和虚拟机参数。
- 个性化界面:根据用户操作习惯,重新定制了操作按钮,优化了用户体验。
用户收益
通过引入Apache DolphinScheduler,翼康实现了以下收益:
- 提升研发效率:日均1000+的任务被调度处理,覆盖4条产品线的20多个业务系统,显著提升了数据开发人员的研发效率。
- 解决复杂查询问题:通过DolphinScheduler的流式任务组装,解决了多表多条件复杂查询串联执行的问题。
- 资源优化:在失败节点重新跑流程,避免了资源的过度占用。
- Flink批流作业触发:解决了Flink批流作业的被动触发问题。
了解更多:中电信翼康基于Apache Dolphinscheduler重构“星海·济世医疗数据中台”实践经验分享
5. Apache DolphinScheduler在Cisco Webex的应用与优化实践
💡 项目亮点:多云环境支持 Kubernetes部署 安全性和审计 数据质量保障
作者|李庆旺
背景需求
Cisco Webex,一家专注于在线会议产品开发的软件公司,需要一个强大的大数据平台来支持其Meeting、Calling、ContactCenter等产品的数据接入和处理。这些产品在会议进行时会产生大量指标和日志,需要一个高效的调度系统来处理。
解决方案
三年前,Cisco Webex即选择了Apache DolphinScheduler作为其工作流数据处理引擎,以解决数据处理流程中的复杂依赖关系。
Cisco Webex工作流数据处理引擎技术架构
为了适应业务场景需求,Cisco基于Apache DolphinScheduler进行了适应性改动,包括:
- 多集群支持:支持多个Webex DC数据中心,AWS EKS集群,以及高安全性集群。
- AWS EKS集群支持:使用单个DolphinScheduler服务控制多个集群,资源存储在AWS S3,加密信息存储在Cisco内部的Vault服务中。
- 安全性优化:重构审计日志功能,采用AOP方法实现,降低代码侵入性,支持Model层面的日志记录。
- 数据质量模块开发:自动调用数据质量任务,支持常见规则配置,降低使用成本,提高易用性。
- . 端到端测试(E2E)改进:拆分为E2E Local和E2E Remote,覆盖更多测试场景。
- ETCD替代了Zookeeper作为注册中心:开发了权限系统,简化了集群申请和命名空间授权流程。
- 扩展K8s集群支持任务类型:如SQL任务、Python任务,
- 优化监控系统,并添加告警:
用户收益
通过Apache DolphinScheduler的引入和优化,Cisco Webex实现了:
- 高效的数据处理:支持大规模数据任务的调度,满足会议产品的数据需求。
- 增强的安全性:通过审计日志和权限管理系统,提高了数据安全性。
- 提升的数据质量:自动进行数据质量检测,及时通知用户进行干预。
- 改进的测试流程:通过E2E测试,确保了代码质量和系统稳定性。
了解更多:Apache DolphinScheduler在Cisco Webex的应用与优化实践
6. 兴业证券基于Apache DolphinScheduler的应用实践
💡 项目亮点:高可用性与稳定性 故障转移机制 监控能力集成 事件驱动整合 定制化开发
作者 | 刘洋
背景需求
兴业证券面临着业务规模的快速扩展,每日需要调度数以万计的任务。原有的任务调度平台由各个项目组独立构建和维护,随着业务量的增长,这种分散式管理的弊端逐渐显现,如开发成本增加、运维复杂度提高、任务依赖管理及并发控制能力不足等问题,迫切需要一个统一且高效的任务调度平台。
解决方案
兴业证券为应对业务规模的快速增长和任务调度的复杂性,采取了一系列细化的解决方案来构建其统一分布式任务调度平台。这些方案包括采用Apache DolphinScheduler作为核心技术基础,并进行定制化开发以满足特定业务需求。平台通过精心设计的系统架构,实现了高可用性和数据一致性,主要由API-Server、Master-Server和Worker-Server三个核心组件构成,这些组件均具备水平扩展能力以保障系统的稳定性。
兴业证券任务调度系统架构设计
此外,平台集成了故障转移机制,确保任务在Worker-Server或Batch-Server节点宕机时能够无缝转移到其他可用节点,同时利用分布式锁机制避免任务重复执行。监控能力的提升和事件驱动架构的引入,使得平台能够快速定位问题并降低与其他系统间的耦合度,提高响应速度和灵活性。
用户收益
通过引入Apache DolphinScheduler并进行定制化开发,兴业证券实现了以下收益:
- 任务集中管理:通过统一的平台,技术人员能够实现任务的集中管理和监控,降低运维成本,提高开发效率。
- 系统稳定性和高效性:新平台的高可用性和稳定性确保了业务流程不受干扰,同时告警机制和租户隔离机制增强了数据安全性。
- 丰富的任务类型和跨环境配置兼容性:支持多种任务类型,并通过插件进行扩展,同时支持测试环境和生产环境间的一键配置迁移。
- 性能监控与调优:实时监控关键性能指标,根据监控结果进行优化,提高系统性能。
- 故障转移和并发控制:在节点故障时,任务能够无缝转移到其他可用节点,同时限制最大并发数,避免性能问题。
了解更多:兴业证券基于Apache DolphinScheduler的应用实践
更多项目资讯
- GitHub: https://github.com/apache/dolphinscheduler
- 官网: https://dolphinscheduler.apache.org/
- 订阅开发者邮件列表:dev@dolphinscheduler@apache.org
- Twitter: @DolphinSchedule
- YouTube: https://www.youtube.com/@apachedolphinscheduler
- Slack: https://join.slack.com/t/asf-dolphinscheduler/shared_invite/z...
参与社区
欢迎参与Apache DolphinScheduler社区贡献,可以通过多种方式参与项目,包括但不限于文档、翻译、答疑、测试、代码、实践文章、原理文章、会议分享等。
- 新手问题列表:https://github.com/apache/dolphinscheduler/issues/5689
- 非新手问题列表:https://github.com/apache/dolphinscheduler/issues
- 如何参与贡献:Https://github.com/apache/dolphinscheduler/blob/8944fdc62295883b0fa46b137ba8aee4fde9711a/docs/docs/en/contribute/join/contribute.md
关注「海豚调度」GZH,查看完整版案例合集PDF。
本文由 白鲸开源科技 提供发布支持!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。