• 我的订阅
  • 科技

作业帮基于 DolphinScheduler 的数据开发平台实践

类别:科技 发布时间:2023-12-26 14:08:00 来源:InfoQ

作者 | 张迎

策划 | Tina

摘 要

随着任务数量、任务类型需求不断增长,对我们的数据开发平台提出了更高的要求。本文主要分享我们将调度引擎升级到 Apache DolphinScheduler 的实践经验,以及对数据开发平台的一些思考。

1. 背景

首先介绍下我们的大数据平台架构:

数据计算层承接了全公司的数据开发需求,负责运行各类指标计算任务。

其中批计算任务运行在 UDA 数据开发平台,支持任务全链路的开发场景:开发、调试、环境隔离、运维、监控。这些功能的支持、任务的稳定运行,强依赖底层的调度系统。

原有调度系统是 2015 年 (抑或更早) 自研的,随着任务类型新增、任务数量增多,暴露出诸多问题:

作业帮基于 DolphinScheduler 的数据开发平台实践

1. 稳定性:频繁出现 mysql 连接不释放、锁超时等问题;数据库压力进一步导致调度性能瓶颈,任务无法及时调度。

2. 可维护性:核心调度器通过 php 开发,代码古老又经历多次交接,外围模块实现时采用了 go java python 多种语言;再加上功能上也存在单点,维护成本很高。

3. 扩展性:业务高速发展,不同任务类型需求越来越多,但是调度作为底层服务在支撑上一直力不从心。

4. 可观测性:由于是定时 nohup 启动任务进程的方式,经常出现任务跑飞了的情况,系统暴露出来的可观测指标几乎为 0。

对调度系统的核心诉求,我觉得分为功能和系统两部分:

作业帮基于 DolphinScheduler 的数据开发平台实践

功能上,调度系统的核心能力是解决数仓构建的依赖调度问题,因此需要支持多种依赖形式;支持丰富的任务类型,同时可扩展自定义新的任务类型。以及上线管控、历史版本回滚、任务血缘等提高易用性的能力。

系统上,稳定性是第一位的,因此需要具备高可用的能力。同时支持租户隔离、线性扩展、可观测,以方便的对系统进行开发、维护和预警。

历史上我们调研过 Airflow、DolphinScheduler 等多种选型,在过去大概一年的时间里,我们将大部分任务从自研调度系统迁移到了 DolphinScheduler 上。

当前调度系统概况如下:

1. 任务类型上:HiveSQL、SparkSQL、DorisSQL、PrestoSQL、部分 shell 任务,均通过 DolphinScheduler 调度;遗留部分 shell 任务在原调度系统。

2. 任务数量上:DolphinScheduler 天级别调度数万工作流实例,数十万任务实例,高峰时期同时运行 4K+ 工作流实例。迁移完成后,预计工作流实例实例数翻倍。

2. 数据开发平台实践

2.1. 基于 DolphinScheduler 的改造

对 DolphinScheduler 的改造围绕稳定性和易用性展开,对于原有调度系统设计良好的功能,需要兼容以降低任务迁移成本。

我们基于 DolphinScheduler 做了如下升级:

作业帮基于 DolphinScheduler 的数据开发平台实践

由于 DolphinScheduler 的架构设计比较好,优化基本上可以围绕单点或者复用现有能力展开,而无需对架构进行大刀阔斧的改造。

我们的 SQL 任务都是多个 SQL 组成,但是原生的 SQL 任务只能提交单个。为了确保系统简洁,我没有引入各类 client(hive-client、spark-client 等),而是通过 SQL 解析、连接池管理方式重构等方式,通过 JDBC 协议支持了单任务多 SQL 的提交。

同时充分复用了 DolphinScheduler 对于数据源的设计,赋予数据源更多的属性,比如连接不同的 HiveServer2、Kyubbi、Presto Coordinator 等,对于计算运行在 Yarn 上的任务,单个数据源也只允许使用单个队列。对数据源增加权限控制,这样不同任务就只能使用有权限的集群资源。

我们将资源文件、DQL 运行的结果数据,都统一上传到了腾讯云的 COS 对象存储,以确保做到 Worker 真正的无状态。(注:日志上传进行中)

此外包括对负载均衡进行优化、多业务线的租户调度隔离、数据库使用优化等。

2.2. 平滑的大规模迁移

尽管两个调度系统,在功能以及架构上存在巨大差异,但是需要做到平滑的迁移,主要三个原因:

1. 原有调度系统服务多年,用户对于功能设计、系统专有字段名词等都已经养成习惯

2. 2W+ 工作流的迁移预计耗时较久,涵盖公司众多重要数据流,问题影响程度高

3. 用户覆盖了公司众多业务线 (平台、直播课、硬件、图书),问题影响面广

如此大规模的迁移我们做到了对用户几乎无感知,主要依赖新旧调度系统的打通和 DIFF。

接下来介绍下具体是怎么做的。

2.2.1. 新旧调度系统打通

任务迁移阶段,一部分任务运行在新的调度系统上,一部分运行在原有调度系统上,就需要解决两个问题:

1. 用户能够查看所有任务实例的运行情况,包括一些内部已经习惯的调度名词 (run_index、result_ftp、log_ftp、csv_result_path 等),这部分信息在 DolphinScheduler 调度里显然没有

2. 任务和任务之间有依赖关系,两个系统间调度任务时,也需要查询对方系统调度的任务实例状态,用于判断当前任务依赖是否就绪。

因此,我们在迁移阶段,架构是这样:

作业帮基于 DolphinScheduler 的数据开发平台实践

核心设计有两处。

首先任务实例状态统一到原调度系统数据库,对平台而言:

1. 查询方式、字段、API 跟之前一致

2. 任务更新时,如果该任务已经迁移到了新调度系统,则同时更新 DolphinScheduler 里的工作流定义

因此平台在使用上,对用户没有感知。

其次我们修改了 DolphinScheduler DependentTaskProcessor 的代码,支持查询 DolphinScheduler 及原有调度系统的任务实例状态。这样 DolphinScheduler 调度的任务,就可以自由依赖两个调度系统的任务实例了。

因此在调度能力上,也做到了对用户没有感知。

上述架构,未来在迁移完成后,就可以仅通过 UDA-API + DolphinScheduler 提供完整的调度能力了。

同时,我们在配置依赖的易用性上也做了优化,历史上支持了多种依赖方式:文件依赖、任务依赖、hql 依赖、prestosql 依赖等。后两者都需要用户手动配置查询对应表,我们都优化为了表依赖。平台解析用户的 sql,针对读取的表,自动添加对应的依赖。既提高了易用性,也对用户屏蔽了底层具体表存储类型 (Hive/Presto/Iceberg/...) 的细节:

作业帮基于 DolphinScheduler 的数据开发平台实践

对任务依赖,也支持了全局搜索、偏移量、偏移单位以进一步提高易用性。

2.2.2. 新旧调度系统 DIFF

其次是新旧调度系统的 DIFF.

作为基础平台,服务的业务线众多,再加上 YARN 资源极其紧张,因此我们对调度系统的稳定性要求很高。为了确保迁移顺利,专门基于 DolphinScheduler DryRun 的能力做了一版定制:

作业帮基于 DolphinScheduler 的数据开发平台实践

所谓镜像任务,是指我们在迁移新调度之前,会先在 DolphinScheduler 镜像一份完全相同的任务,任务同样经过变量替换等操作,只是该任务标记了不真正执行。

这样我们就可以比较两个系统间的 DIFF,主要包括:

经过上述空跑观察一段时间,确保无 diff 后,线上任务就真正迁移到新的调度引擎上了。

2.2.3. 系统的可观测性

在有限的时间里,我们做了上述准备,但是仍然不够充分。

系统需要具备良好的可观测性,DolphinScheduler 对外提供了 Prometheus 格式的基础指标。我们增加了一些高优指标,同时转化为 Falcon 格式对接到公司内部的监控系统。

通过监控大盘来查看调度系统的健康状况,并针对不同级别的指标和阈值,配置电话 / 钉钉报警:

作业帮基于 DolphinScheduler 的数据开发平台实践

可观测性提高后,分析问题的人力成本也得到控制,例如对于这种曲线:

作业帮基于 DolphinScheduler 的数据开发平台实践

容易观察到在非工作时间曲线值基本为 0,因此就能判断指标异常 (=1) 很可能是用户修改后触发的,相比之前出现问题只能靠猜和逐台机器登录分析日志的方式,通过 metrics 分析能够更早发现和预警问题。

在迁移启动后,对于 misfire、worker 线程池饱和度、连接池饱和度、io-util、overload 等指标,都重点关注和评估,以确保迁移顺利。

2.3. 迁移收益

目前迁移已经进行了一大半,我们针对新旧调度系统的数据库以及调度机资源使用做了对比:

我们在迁移过程中,通过 DolphinScheduler 以极低的开发成本支持了 SparkSQL、DorisSQL,以及高版本 PrestoSQL 这类业务新的调度需求。

功能上的其他对比:

作业帮基于 DolphinScheduler 的数据开发平台实践

3. 未来规划

1. 例行任务、调试能力全部迁移 DolphinScheduler,沉淀线上操作 SOP

2. 结合社区的容器化进度,实现模块 K8S 部署。当前 API 模块已经在生产环境使用,Worker、Master 进行中

3. 全链路的一键数据回溯能力

4. 离线、实时平台打通

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-12-26 19:45:37

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

华为云classroom赋能高校教学
...课后利用Classroom5000+免费习题和自动判题能力,做到课后作业1“秒”发送,学生作业1“秒”自动批改;批改报告同步提供学生能力短板的全面数据分析
2022-12-27 14:15:00
...:技术反馈学习成效课后,烟台开发区谦益小学教师基于作业资源库,根据学生学习实践推送个性化、可供选择的作业设计方案,指导学生高阶思维的发展。同时利用作业分析小程序对作业质量进行
2023-10-31 17:45:00
数据要素×工业制造:光纤通信企业携手奇点云,攻克“国产替代”迁移难关
...数据集成功能,完成对项目中500张表的批量建表。·  作业导入:DataSimba的作业批量导入功能,可以将预定义好的任务(包含任务名称、对应的项目以及依赖项等信息)快速导入
2024-03-19 11:18:00
中国海上首个规模化钻井开发 亿吨级油田垦利6-1完成全部钻井作业
...开发的亿吨级油田——垦利6-1油田,完成全部177口井钻井作业,工程质量合格率100%,提速超20%,完成十三项新技术应用,打破8项中国海油钻井纪录,大大缩短了产能建设周期,
2023-09-24 16:32:00
数据跑起来 效率高起来
...代人登录平台、点击巡检中心、选择机库……在电网机巡作业平台里,随着工作人员“一键”下发任务,远在300多千米外的铜仁市玉屏侗族自治县新店镇220千伏铜青Ⅰ回线处,一台无人机自
2024-04-29 12:12:00
直面痛点+顺应趋势,捷瑞数字如何以数字孪生赋能油气行业?
...布及潜在风险区域的可视化洞察。系统能够动态模拟井筒作业过程中的压力变化、流体流动及温度分布,为钻井决策、地层评价及油藏管理提供科学依据。可谓是真正做到了让科学家脑海中的石油呈
2024-09-02 14:45:00
海信日立“信智AI平台”智造工厂解决方案入选数字化赋能新型工业化创新实践优秀案例
...延迟接受、启发式规则等标准化算法,系统自动生成详细作业计划,支撑在线数据分析及决策;第二,定制电子信息制造领域个性化AI算法,建立了空压机智能控制、干燥炉参数优化、空调集控等
2023-12-04 18:43:00
信息技术赋能教学研全面提升智慧课堂推动教育高质量发展——市兰苑中学借助鹤壁智慧教育平台实现精准教学
...壁智慧教育教师端进行微课制作、课程管理、课堂管理、作业布置、发布考试等。学生使用鹤壁智慧教育学生端,接收并管理任务、完成作业、参与考试、交流互动、个性化学习等。采取“云—台—
2023-04-18 08:48:00
...问学AI学习系统”,基于知识图谱建立了具有区域特色的作业题库,并集成了自主学习材料和微视频教学资源。利用即时的智能组卷和批改技术,教师批改完一个班的作业只需要20分钟;学生每
2024-04-19 06:49:00
更多关于科技的资讯:
佛山正视利怎么样?品牌硬实力与全民口碑给出答案
在全民视力健康危机日益严峻的当下,我国视力问题人群已高达 7.8 亿,儿童青少年总体近视率近 60%,其中高中生近视率更是飙升至 87
2026-01-12 21:03:00
安建大教师最新研究成果破解心脏病变分割难题
大皖新闻讯 近日,安徽建筑大学陈永麟老师联合南京林业大学、安徽大学及武汉市第三人民医院的专家们,创新性地提出了DAF-Mamba的高性能分割模型
2026-01-12 22:22:00
迪士尼限定快闪登陆马来西亚,杰森娱乐“生态出海”加速市场开拓
2026年1月9日,马来西亚吉隆坡核心商业地标LaLaport BBCC的ACG BASE正式上演为期一个多月的大型主题快闪——这是杰森娱乐集团携手迪士尼以及国际知名插画师Mik
2026-01-12 17:34:00
网络视听向何处发展?第五届网络视听创新发展论坛举办
中国青年报客户端讯(中青报·中青网记者余冰玥沈杰群)近日,“新大众文艺·新视听使命”第五届网络视听创新发展论坛在北京举办
2026-01-12 17:34:00
打开手机,刷几条短视频,准能看见一条养生秘籍;翻几页朋友圈,也少不了长辈们转发的健康预警。从“吃木薯助眠”到“冷冻馒头会长黄曲霉毒素”
2026-01-12 18:18:00
中国消费者报北京讯(记者聂国春)1月8日,北京智源人工智能研究院发布年度报告《2026十大AI技术趋势》。报告指出,人工智能的演进核心正发生关键转移
2026-01-12 19:35:00
近日,连江县古石村夜景照明设计作品“古石微光”接连斩获2025年美国LIT照明设计奖与2025美国IDA国际设计大奖两项国际大奖。
2026-01-12 19:40:00
中国消费者报报道(记者桑雪骐)2025年12月,市场监管总局公布5起民生领域私域直播虚假宣传典型案例。1月7日,市场监管总局发布《直播电商监督管理办法》《网络交易平台规则监督管理办法》
2026-01-12 19:05:00
三联家电41周年店庆:多重补贴叠加,引领春节消费热潮
鲁网1月12日讯新春佳节渐近,山东家电零售行业的领军品牌——三联家电迎来41周年庆典。1月16日至25日期间,一场盛大的店庆活动即将热烈展开
2026-01-12 17:01:00
随着全球环保法规日趋严苛,挥发性有机物(VOCs)治理成为工业企业合规运营的关键环节,沸石转轮吸附浓缩技术因高效节能的特性
2026-01-12 16:56:00
创意碰撞青春,立达 Z 世代・名流广告创意赛圆满落幕
当 Z 世代的脑洞与广告艺术激情碰撞,当校企协同的育人理念落地生根,一场聚焦创意与热爱的行业盛事圆满收官。12月29日
2026-01-12 16:58:00
天津市优秀基层理论宣讲员风采展示党的二十届四中全会强调,要前瞻布局未来产业,推动包括具身智能在内的六个领域成为新的经济增长点
2026-01-12 14:15:00
刘伟涛博士出任时代天使首席医学官 进一步强化全球医学体系建设
时代天使首席医学官刘伟涛博士近日,时代天使宣布,原赛德阳光口腔集团首席医疗官刘伟涛博士已正式加入时代天使,担任首席医学官兼高级副总裁
2026-01-12 16:08:00
近日,2026年湖北省科技创新大会以“乘势而上、聚势提升”为基调,再次锚定打造具有全国影响力的科技创新高地的核心目标,明确将科技创新与产业创新深度融合作为发展新质生产力的关键路径
2026-01-12 16:41:00
创新内容与读者的连接方式,磨铁图书亮相2026北京图书订货会
在2026北京图书订货会上,磨铁携大量优质内容产品亮相。围绕“磨铁,总有新的____”这一slogan,磨铁通过沉浸式的展陈设计
2026-01-12 11:27:00