当前位置: 首页 > article >正文

网易邮箱DolphinScheduler迁移实战:从部署到优化,10倍效率提升的内部经验

请添加图片描述

——企业级调度系统平滑迁移指南,附避坑全流程!

随着互联网的飞速发展,电子邮件作为重要的信息交流工具之一,其数据处理和任务调度的需求日益增长。网易邮箱作为国内领先的电子邮件服务提供商,为了更好地应对海量数据的处理和任务调度挑战,引入了DolphinScheduler平台,并在实际应用中进行了深入的部署与优化实践。

分享嘉宾:

雷宝鑫,网易邮箱 大数据工程师

请添加图片描述

项目背景与选型

网易邮件发展史

网易邮箱自1997年推出以来,经历了多个重要发展阶段,从126邮箱、163邮箱到邮箱大师等,不断丰富产品线和服务内容。如今,网易邮箱已构建起涵盖免费邮箱、企业邮箱、VIP邮箱等在内的多元化业务体系,为海量用户提供稳定、安全、高效的邮件服务。

请添加图片描述

从上图中可以看到,2023年网易邮箱引入了Apache DolphinScheduler。

数据应用场景

在网易邮箱的日常运营中,面临着海量的业务日志数据处理需求。这些数据需要进行永久冷备以及大于半年的热备存储,并且业务日志按离线(HDFS)和实时(ClickHouse)分别处理落盘。同时,为了保障业务的可用性,核心收发信链路以及登录用户验证机制等环节都需要高效的数据处理和任务调度支持。

请添加图片描述

选型背景与DolphinScheduler优势

面对日益增长的数据处理需求,网易邮箱团队对多个开源调度平台进行了选型对比。DolphinScheduler凭借其支持多种调度机制、稳定性强、易用性高以及功能丰富等优势脱颖而出。它能够支持多种数据场景,满足网易邮箱复杂多样的任务调度需求。

请添加图片描述

平台部署与使用现状

基于DS的升级改造之路

网易邮箱团队在引入DolphinScheduler平台后,开启了一段持续优化改进的升级改造之路。从前期的调研选型对比,到针对使用过程中遇到的问题进行解决,再到进行二次开发持续优化平台的易用性和使用体验,团队不断推进平台的完善。2023年3月确定选型后,于2023年12月完成基于告警功能的初步改造,并在2024年3月实现稳定运行与持续探索。
请添加图片描述

数据架构与使用现状

目前,DolphinScheduler平台在网易邮箱部门内部已部署为3-Master、5-Worker架构,并运行在k8s上。该平台承接了反垃圾、风控、AI等业务的1200多个离线调度任务,每日执行次数超过5万次。

在数据架构层面,结合了DolphinScheduler与Streampark,实现了离线调度与实时Flink任务处理的结合。同时,自研的元数据中心、数据门户等组件构成了数据服务层,为数据管理与服务提供支持。

平台的引入显著提升了数据开发效率,降低了运维成本,并保障了业务数据的稳定产出,有力地支持了业务的快速迭代与创新。

请添加图片描述

任务类型与应用支撑

DolphinScheduler平台已成为部门内主要的任务调度平台,任务类型丰富多样,涵盖Spark、Shell、SQL、SeaTunnel、Python等多种类型。这些任务为下游的元数据管理、BI报表、数据研发等应用提供了坚实的数据支撑,满足了不同业务场景下的数据处理需求。

请添加图片描述

集成数据分发功能与优化实践

集成数据分发功能

在数据调度分发上,网易邮箱团队发现了一些亟待解决的问题,以提高数据处理的效率和能力,包括:

  • 数据处理需求频繁
    非研发人员数据处理需求频繁,需要数据开发人员支持。
  • 中间表构建意愿低
    产品和QA对中间表的构建意愿低,对他们来说耗时较长。
  • 数据同步配置存在门槛
    异构数据源间的数据同步任务配置存在门槛,需要专门的数开支持。
  • 同步任务开发流程较长
    完整的数据同步任务开发流程较长,涉及表创建、同步配置创建、调度任务创建等步骤。

为了解决以上问题,网易邮箱团队在DolphinScheduler平台上集成了数据分发功能。

请添加图片描述
请添加图片描述

总的思路是中间表创建+同步任务配置生成+调度任务创建」,提升中间数据处理效率,提供一站式数据处理任务构建流程。

该功能提供了快速配置和自定义配置两种方式,能够根据表单参数自动生成表DDL语句并执行建表逻辑,同时生成中间处理SQL和数据同步任务配置,最后调用海豚内部方法创建工作流和调度任务。

这一功能的实现,将中间数据处理的平均耗时从1小时降低到20分钟以内,提升了67%的开发效率,并已支撑线上40多个数据处理任务,且使用人数在不断增加。

请添加图片描述

优化离线调度方式,提升故障恢复能力

原调度机制在处理依赖任务失败时,会导致dependent节点直接运行失败,无法一键重跑未完成数据链路,增加了数据开发人员的运维压力和故障恢复时长。

请添加图片描述

针对这一问题,团队对dolphinscheduler-master模块的DependentExecute类中getModelDependResult方法的等待及失败信号处理逻辑进行了重新设计。当依赖任务状态为FAILED时,将dependResultList中的状态改为WAITING,从而使下游任务获取到的是WAITING状态而非FAILED状态。
请添加图片描述

这一优化实现了数据链路的一键恢复重跑,减少了人工干预成本,提升了任务链的恢复效率和智能化程度,加快了数据链路故障恢复速度,保障了业务数据的及时恢复产出。

请添加图片描述

请添加图片描述

SeaTunnel组件集成与优化,数据同步提效

为满足新业务大规模数据同步需求,团队引入了SeaTunnel数据集成工具,并以分离集群模式部署在k8s集群上。

通过优化SeaTunnel插件,网易邮箱提供了自定义与快速配置两种方式,降低了使用门槛。

请添加图片描述

实现原理

在实现原理上,支持表单配置和自定义配置两种方式,表单配置方式通过表单参数生成ST配置的交互逻辑,并支持配置额外自定义参数以及任务级的JVM配置。
请添加图片描述

后端接收表单参数生成任务执行上下文的必要配置,设计IConfigGenerator接口实现各数据源生成Source和Sink的逻辑,最终通过SeatunnelConfigGenerator类生成最终的ST配置。
请添加图片描述

部署与调优

在部署与调优方面,SeaTunnel集群采用2-Master、5-Worker架构实现高可用和同步性能。

通过优化HDFS、HIVE、MultiTable Source的分片逻辑,使reader接收到的分片更均衡,提升数据同步性能,并已将相关优化提交PR反馈社区。

请添加图片描述

在参数调优方面,针对HDFS到Doris的大规模数据同步需求,对DorisSink的代码进行研究和参数调优后,实现了200w/s的数据传输速率,极大地提升了数据同步性能。

请添加图片描述

项目实践案例:任务迁移与资源隔离实战

猛犸平台任务向海豚调度的高效迁移

猛犸平台是面向网易集团内部的大数据平台软件,部分猛犸任务间的依赖关系非常复杂,需要进行分析整理。如果是采用人工分析整理的话,效率较低,且容易遗漏、错漏。

请添加图片描述

最终在调研DolphinScheduler平台的任务依赖关系的表示方式之后,决定迁移到DolphinScheduler。

在迁移方式的选择上,如果以手动迁移的方式,不仅耗时耗力,还容易因任务依赖关系的复杂性而导致迁移错误,进而影响整体任务的稳定性。

基于种种原因的考虑,网易邮箱讨论并调研后决定,采用自动化同步方案,通过程序自动采集旧平台任务元数据和任务血缘,并转化成海豚平台的任务配置形式,同时添加上任务依赖关系,最后通过海豚接口快速进行工作流的创建。为了实现这个流程,网易邮箱采用了DolphinScheduler官方提供的PyDolphinScheduler同步工具,这个Python API允许通过Python代码定义工作流,即所谓的“工作流即代码”。

此外,网易邮箱还通过元数据系统采集猛犸任务的元数据和血缘关系,将猛犸任务批量改写为DolphinScheduler任务,并根据血缘关系自动添加依赖关系节点。

请添加图片描述

这一实践高效完成了300多个猛犸任务的迁移,保障了业务的平稳过渡,实现了一键批量迁移,极大地节省了人力成本,并为后续类似任务迁移场景提供了可借鉴的经验。

worker group隔离实践

下一个项目实践是基于DolphinScheduler的Worker分组资源隔离实践。

在网易邮箱DolphinScheduler平台的日常使用中,一个关键的业务场景是支撑QA的线上监控调度任务。这类任务的特点是调度频率高,大多为分钟级;任务数量多,目前监控相关任务数达到120+。

这些监控调度任务的执行目前其内部主要是通过SHELL任务类型通过调用自己开发的一个ETL任务处理工具jar包来实现的。这个jar包提供一些任务执行时的额外扩展功能,比如幂等性校验,超时重试等。

但是这种调用会在worker节点启动较多的JVM进程。这时,如果有一些比较核心的调度任务也调度到相同的worker节点的话,一旦因内存不足导致触发OOM killer,这些核心任务的内存占用又一般会比较大,导致其OOM分数的计算会比较高,更有可能被kill掉,就会造成核心任务执行的不稳定。

此外,一些凌晨执行的T+1同步任务需要大量资源,也不适合与其他任务调度到同一节点,可能会影响同一worker下其他任务的执行性能和稳定。

因此,网易邮箱团队想到用Worker group隔离方案来里面以上问题。

通过Worker group隔离,团队将实时监控等高频率调度任务与其他任务隔离开,保障了核心OKR相关调度的稳定执行,提升了整体任务执行的稳定性与可靠性。

请添加图片描述

在具体实施中,网易邮箱在平台创建不同的Worker分组包含不同的Worker节点,包括Default、AI、监控、Hadoop、大资源任务等多个分组,避免了任务卡死与资源抢占问题,优化了资源分配,提升了平台整体资源利用率与性能。

这一实践有效解决了QA监控任务调度频率高导致任务阻塞,以及凌晨T+1任务资源需求大引发worker节点OOM等问题,降低了运维风险。

请添加图片描述

总结与未来展望

实践总结

通过引入DolphinScheduler平台并进行一系列的部署与优化实践,网易邮箱团队在提升数据开发效率、降低运维成本、保障业务数据稳定产出等方面取得了显著成效。平台的二次开发紧密结合了业务需求,注重用户体验与开发效率的提升,同时团队持续关注平台的优化与改进,并积极贡献社区,推动平台的不断发展。

平台价值与效益

DolphinScheduler平台在网易邮箱业务中发挥了重要作用,不仅提升了数据开发的效率和稳定性,还通过优化任务调度流程,满足了业务的多样化需求,保障了数据的及时产出,有力地推动了邮箱业务的持续发展。

经验分享与启示

在平台的部署与优化过程中,网易邮箱团队积累了丰富的实践经验。这些经验对于其他企业在选择和使用任务调度平台时具有重要的参考价值。团队强调,二次开发应紧密结合业务实际需求,始终将用户体验和开发效率放在首位。同时,持续关注平台的优化与改进,积极参与开源社区建设,能够推动平台的不断完善和发展。

未来展望

展望未来,网易邮箱团队计划在以下几个方向继续探索和推进:

  • 拥抱AI:结合AI及LLM能力,实现更加智能化、易用的数据处理ETL流程,提升数据处理的自动化和智能化水平。
  • 数据治理:整合DolphinScheduler调度数据和内部的元数据中心,实现智能的数据/任务血缘和数据地图的采集和分析,为数据治理提供有力支持。
  • 平台优化:进一步优化DolphinScheduler平台的性能和功能,提升平台的稳定性和可靠性,以更好地满足日益增长的数据处理需求。
  • 拥抱DATA OPS:实现DolphinScheduler平台和其他数据平台系统的集成和整合,推动数据集成和传输的自动化,构建更加高效的数据生态系统。

请添加图片描述

写在最后

网易邮箱基于DolphinScheduler平台的部署与优化实践,不仅解决了当前面临的任务调度和数据处理挑战,还为未来的发展奠定了坚实的基础。通过不断的技术创新和实践探索,网易邮箱将继续为用户提供更加优质、高效的邮件服务,同时也为开源社区的发展贡献更多的力量。


http://www.kler.cn/a/612036.html

相关文章:

  • 数据结构6-图
  • 数制——FPGA
  • C++ set容器总结
  • Linux 目录结构(文件系统结构)示例说明
  • 《Spring Cloud Eureka 高可用集群实战:从零构建 99.99% 可靠性的微服务注册中心》
  • 【后端】CDN内容分发网络
  • 美摄科技智能汽车视频延迟摄影解决方案,开启智能出行新视界
  • ESP32S3 WIFI 实现TCP服务器和静态IP
  • 使用 OCRmyPDF 将扫描 PDF 转为可搜索文档和文本文件
  • <sa8650>QCX Camera Channel configuration
  • 如何根据目标网站调整Python爬虫的延迟时间?
  • Postman 版本信息速查:快速定位版本号
  • 量子计算模拟中的测量与噪声建模:基于 3 量子比特系统分析
  • 甘肃旅游服务平台+论文源码视频演示
  • 算法每日一练 (20)
  • 容器C++
  • 关于优麒麟ukylin如何更换清华源以及ubuntu24.04安装gcc-i686-linux-gnu找不到包的问题
  • C#中3维向量的实现
  • 【商城实战(74)】数据采集与整理,夯实电商运营基石
  • 使用crontab 每两分钟执行一次 进入 /var/xxx 执行 git pull