- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Apache Dolphinscheduler在YY直播的实践
展开查看详情
1 .Apache 2022 Dolphinscheduler 在YY直播实践 讲师 袁丙泽
2 .目录 CONTENTS 01 引入背景 02 DS引入 03 DS应用适配 04 未来规划
3 . 01 关于我们 引入背景 技术状况
4 .关于我们
5 .技术状况-离线计算数据架构 计算与应用 计算应用层 计算调度 任务管理 服务治理系统 管理层 大数据系统 RDBM 图数据库 Redis 存储层 数据采集系统 采集层 RDBM api kafka 文件 数据源层
6 .调度状况 1.调度平台复杂。团队除了有基于xxl-job的任务调度外;部分老项目中有使用crontab、springboot scheduler、quartz等管理任务的启动。 2.任务依赖需求强烈。目前我们所使用的调度,仅能设置单个任务的执行。无法通过任务依赖形成工作流,任 务依赖设置严重依赖于个人经验设置定时时间。实际上很多任务都需要有依赖关系; 3.任务复杂多样。目前任务有基于大数据系统的spark、flink任务;服务治理平台中各种java服务任务;shell、 java application、python等。
7 .02 需求调研 DS引入 调度选型
8 .需求调研 1.统一管理任务及依赖关系 2.兼容公司内部各平台系统 3.兼容当前调度 ① 兼容datax ②兼容crontab服务 4. 高可用、高性能、高并发、容易使用
9 . 调度选型 azlaban oozie airflow xxl-job dolphinscheduler 定位 解决Hadoop的任务依赖关 管理haddp作业的工作流 通用的批量数据处理 一个轻量级分布式的任务 分布式易扩展的可视化工作流任务调度平台 系问题 程调度管理系统 调度框架 任务类型支持 command、shell、java、 hadoop、pig、hive、 Python\shell、Http、 Java、datax、shell等 shell、spark、SQL、python、DataX等 spark等,支持插件 spark、shell等 Mysql等。支持Operator 自定义扩展 可视化流程定义 否 否、XML配置,用起来比 否 无 是 较痛苦 任务监控支持 只能看到任务状态 只能看到任务状态 不能直观区分任务类型 无 任务状态、类型、重试次数、运行机器、可 视化变量等关键信息一目了然 自定义任务类型支持 是 是 是 是 是 暂停/回复/补数 不支持暂停。不支持补数 支持启动、暂停、回复、 否 支持暂停、恢复,不支持 支持暂停、恢复、补数等操作 重新运行 补数操作 高可用支持 通过DBa支持HA,但Web 通过DBa支持HA 通过DBa支持HA,但 支持 支持、去中心化的多Master与多Worker Server存在单点故障风险 schedulerc存在单点故障 风险 多租户支持 否 否 否 否 是 过载处理能力 任务太多时会卡死服务器 调度任务时可能出现卡死 任务太多时会卡死服务器 任务队列机制、轮询 任务队列机制、单个机器上可调度任务数量 可以灵活配置,任务过多时会缓存。 集群扩展支持 是 是 是 是 是 社区活跃度 日薄西山 不活跃 apache项目,中文社区不 比较活跃 特别活跃 活跃 主要数据来源 https://blog.csdn.net/qq_40822132/article/details/121469748
10 .03 DS部署 DS应用 兼容适配 案例介绍
11 . DS系统架构图 api master worker log alert 图表来源: https://dolphinscheduler.apache.org/zh-cn/development/architecture-design.html
12 . 部署情况 部署版本 :2.0 ds01 ds02 ds03 ds04 master api work log alert
13 . 服务治理适配-MasterServer服务说明 1. Distributed Quartz分布式调度组件,主要负责定时任务的启 停操作,当quartz调起任务后,Master内部会有线程池具体 负责处理任务的后续操作 2. MasterSchedulerThread是一个扫描线程,定时扫描数据库 中的 command 表,根据不同的命令类型进行不同的业务操 作 3. MasterExecThread (WorkflowExecuteThread.java)主要 是负责DAG任务切分、任务提交监控、各种不同命令类型的 逻辑处理 4. MasterTaskExecThread主要负责任务的持久化 https://dolphinscheduler.apache.org/zh-cn/development/architecture-design.html
14 . 服务治理适配-code 除了任务级别的监控外,目前还通过该方式按 照project维度监控。 然后通过服务治理平台精准告警
15 .服务治理平台适配-效果展示 提交任务数 成功率
16 . DATAX服务适配-自定义模板 svcreader bigdatareader rediswriter 插件编写方案:https://github.com/alibaba/DataX/blob/master/dataxPluginDev.md
17 . DATAX服务适配-clickhouse兼容 #8092 修复过程:https://github.com/apache/dolphinscheduler/pull/8091
18 . DATAX服务适配-clickhouse 适配#8091fix 修复过程:https://github.com/apache/dolphinscheduler/pull/8091
19 . time参数适配-DS现状 实际情况: $[timestamp(yyyyMMddHHmmss)] 实际需求: 需要毫秒级unix time 时间 信息来源:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/parameter/built-in.html
20 . time参数适配-歧义 Mysql select unix_timestamp() Clickhouse select toUnixTimestamp() hive select unix_timestamp() dolphinscheduler $[timestamp(yyyyMMddHHmmss)] 信息来源:https://en.wikipedia.org/wiki/Timestamp https://en.wikipedia.org/wiki/Unix_time
21 .time参数适配-调用过程 需求背景:需要使用毫秒参数,适配之前使用习惯 执行方案:新增DS时间参数函数
22 .time适配-修改时间参数代码
23 .其它类型任务适配 HTTP 类型任务 xxl-job、springboot scheduler 、大数据系统任务 SHELL 类型任务 crontab
24 .服务项目案例-流程
25 .服务项目案例-补数
26 .04 未来规划 未来规划
27 .未来规划
28 . THANKS! Ending