- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
OceanBase开发者大会-基于DolphinScheduler构建分布式大数据调度平台实践
展开查看详情
1 .基于DolphinScheduler 构建分布式大数据调度平台实践 代立冬 白鲸开源联合创始人 Apache DolphinScheduler PMC Chair Apache Foundation Member Apache 孵化器导师 2023/03/04
2 . 01 Apache DolphinScheduler - 新一代工作流任务调度平台介绍 Contents 目录 02 DolphinScheduler 架构设计迭代实践 03 OceanBase 数据源实践 04 DolphinScheduler Roadmap
3 .新一代工作流任务调度平台介绍 01
4 . Apache DolphinScheduler 简介 Apache DolphinScheduler 是一个云原生并带有 强大可视化界面的大数据工作流调度平台。 2021 年 04 月 09 日正式成为 Apache 顶级项目。 目前已累计有 3000+ 公司在生产上使用。 DolphinScheduler 致力于在数据工作流编排中 “解决复杂的大数据任务间的依赖及触发关系,让 各大数据任务类型开箱即用”。 www.oceanbase.com 正文标题 — 16pt —阿里巴巴普惠体2.0
5 .Apache DolphinScheduler 简介 DolphinScheduler 是一个云原生并 带有强大可视化界面的大数据工作流 调度平台 目前已累计有 3000+ 公司在生产上 使用。DS 致力于在数据工作流编排 中“解决复杂的大数据任务间的依赖 及触发关系,让各大数据任务类型开 箱即用” www.oceanbase.com
6 .Apache DolphinScheduler UI www.oceanbase.com
7 .Apache DolphinScheduler 调度平台特点 高可靠性 简单易用 一键部署 – 简化部署,易维护 去中心化的多 Master 和多 Worker, 可视化界面,所有流程定义都是可视化, 自身高可用能力 通过拖拽任务形成工作流模板 采用任务队列来避免过载,不会造成 支持 Open API 方式与第三方系统对接 机器卡死 丰富的使用场景 高扩展性、云原生能力 支持暂停恢复及停止等丰富操作 支持自定义任务类型 支持多租户,权限管理等大数据应用场景 调度能力随集群线性增长 支持 30+ 种任务类型,如 Spark, Flink, 弹性伸缩, Master 和 Worker 支持动 Hive, MR, Python, Shell 等 态上下线 www.oceanbase.com
8 .Apache DolphinScheduler 调度平台特点 数据加工平台任务监控总览 流程实例状态查看 任务执行状态回溯 任务执行日志查看 www.oceanbase.com
9 .数据源管理:可视化配置、多数据源格式支持 1. 支持可视化的数据源包括: MySql、PostgerSql、 Hive、Impala、Spark、 ClickHouse、Oracle、 插件式扩展 SqlServer、DB2、 MongoDB等。平台采用插 件式设计,支持自由扩展 数据源支持。 2. 可视化的数据源管理,数 据源统一集中管理,一次 配置,到处使用,大大减 少配置修改带来的工作量。 也方便后续数据血缘关系 的处理 9
10 .脚本统一管理维护,多层级结构易维护 1. 支持多数据源数 据的加工、数据 导入导入脚本统 一管理,包括 python、shell、 jar包、R等多种 格式。 2. 多层级结构确保 文件管理层次清 晰,避免资源文 件散乱难以维护。 10
11 .工作流流程支持多策略启动、优先级、告警配置 任务流程多策略支持确保ETL过程 可管理: 支持任务失败策略选择,失败 继续或结束 支持多种通知策略 1. 失败发送通知 2. 成功发送通知 3. 全部通知 4. 全部不发通知 支持优先级设定,确保高优先 级流程优先执行 支持选定节点执行ETL任务流 支持串行与并行两种执行方式 11
12 .DolphinScheduler 架构设计 迭代实践 02
13 .Apache DolphinScheduler 架构 www.oceanbase.com
14 .Apache DolphinScheduler 架构 工作流任务切分 状态监控 状态流转 任务分发 工作流操作处理 逻辑任务处理 监听其它 MasterServer 和 WorkerServer 健康状态,在服务宕机的时候,触发 自动容错机制,保证作业的完成性和持续性 www.oceanbase.com
15 .Apache DolphinScheduler 架构 工作流任务切分 状态监控 状态流转 任务分发 工作流操作处理 逻辑任务处理 监听其它 MasterServer 和 WorkerServer 健康状态,在服务宕机的时候,触发 自动容错机制,保证作业的完成性和持续性 www.oceanbase.com
16 .Apache DolphinScheduler 架构 执行任务 监测任务结果和任务执行状态 任务日志 WorkerServer 架构设计优势之处 WorkerServer 采用任务队列机制,单个机器上可调度的任务数量可以灵活配置,当任务过多时会缓存在任务队列里,不会造成 机器卡死 WorkerServer 拥有完善的资源控制策略,解决超大规模作业的并发控制、资源竞争控制、负载均衡等问题 www.oceanbase.com
17 . 去分布式锁设计—1.X原先设计 WHALE PART NUMBER 02
18 . 去分布式锁设计—3.X版本设计 WHALE PART NUMBER 02
19 . Master线程模型重构—3.X版本设计 MasterSchedulerService 负责从 Command 表中分片获取 command, 构造工作 ThreadPool 流实例,启动 WorkFlowExecuteThread 处理 负责构建 DAG, DAG 拆分,生成任务实例,提交到任务队 WorkFlowExecuteThread 列; 同时负责处理任务状态和工作流状态变化 StateEventExecuteService 负责任务/工作 API StateWheelExecuteThread ThreadPool 流超时监控 负责接收其他 Master / Worker 发过来的任务状态和工 作流状态变化事件,并提交 WorkFlowExecuteThread 状态处理 WHALE PART NUMBER 02
20 . Master 负载均衡策略 MasterServer 将任务下发至 WorkerServer 前,会根据负载均衡策略选出合适的 WorkerServer节点,而负载均衡策略有如下三种: 加权随机(Random):随机选择一个节点 加权轮询(LowerWeight):默认策略。WorkerServer节点每隔一段时间向注册中心上报 心跳信息(包含 cpuload、可用物理内存、启动时间、线程数量等),MasterServer 分发 任务时根据 WorkerServer 节点的 cpuload 、可用物理内存、系统平均负载、服务启动耗 时计算节点权重值 平滑加权轮询(RoundRobin):节点宕机时降低有效权重值,节点正常时提高有效权重值; 降权起到缓慢剔除宕机节点的效果,提权起到缓冲恢复宕机节点的效果; WHALE PART NUMBER 02
21 . 新版本的Master端有那些变化 02 04 使用分片机 增加Master 制获取命令 与Master之 队列 间的通信 大幅减少 增加状态事 增加Master Master的线 件的处理机 的缓存机制 程使用 制 01 03 05 WHALE PART NUMBER 02
22 . 改造后的架构效果—吞吐20倍提升 task throughput 3500 3000 2500 2000 1500 1000 500 0 1master+1worker 1 master+2worker 1 master+3worker Master:100 threads Worker:100 threads WHALE PART NUMBER 02
23 .OceanBase 数据源实践 04
24 .DolphinScheduler Roadmap 04
25 .Apache DolphinScheduler 近期进展 支持 SeaTunnel Zeta 引擎选择 解决多数据源数据每日出入数 据库以及每日出入仓同步数据 解决从 MySql,日志文件、 问题,数据集群规模几十台, Presto、Kafka、Spark、 日均记录数上千亿,日均数据 ClickHouse 以及 Hudi 之间数 量在 100T 以上。 据同步问题,覆盖数十台集群。 ☆ 多源数据高频出入数据仓库 ☆ 异构数据实时数据同步 www.oceanbase.com
26 .Apache DolphinScheduler Roadmap 总体依照社区需求和关注度来安排功能优先级, 做哪些功能由邮件讨论决定 o 动态任务插件支持 o Remote Task o 更好支持 Streaming Task o K8S Operator o 支持多集群上线发布 o Easy to use 如果对 Roadmap 有更多建议,欢迎邮件讨论 www.oceanbase.com
27 .Apache DolphinScheduler Roadmap 云和 SaaS 的普及,让传统的数据处理流程从 ETL、ELT变为更复杂的EtLT,来快速满足从复杂 多种数据源到最终企业级数据湖、数据仓库、大数据平台当中的业务可有用的数据。 Extract抽取 transform 轻量级清洗 Load 加载 Transform 数据业务级转化 数据库抽取 数据JDBC 类型转化 Bulk Load CDC 读取 数据过滤 业务ETL设计 数据业务逻辑处理 数据Join、聚集 日志同步 文件抽取 数据ETL开发 SQL编写与管理 结构转化 表结构变化 软件 API 协同开发 数据钩稽关系检查 Cloud API 脏数据清洗 API加载 SaaS API Reverse ETL Ops处理 调度&协同 DataOps Engineer ETL/ELT Developer Data Security Engineer Architect SQL Developer Data Scientist Marketing Analyst Sales Analyst www.oceanbase.com 数据工程人员 业务分析、数据应用人员
28 .Apache DolphinScheduler Use Case 联通数科早期使用原商业调度系统支撑 早期使用 Airflow 调度全球任务,但因 过去大数据调度使用SQL/Shell/Python脚 着全域数据平台加工与调度,以接口机 为分布式支持问题、无可视化问题导致 本和其他大数据组件完成整个AI流程,面 配合Shell(HiveSQL)为主的开发编排 系统开发效率和稳定性堪忧,同时也无 临不易用且难复用问题。 使用基于DS的 运维模式,处理日均数万的流程实例和 法支持 K8S 和全球的云原生部署。选择 AI开发平台后,荔枝FM将获取数据、数据 日均上百万的 Job 作业,对比闭源调 从Airflow 迁移至 DS。 预处理、模型训练、模型预测、模型评估 度工具、Airflow、Azkaban 后,最终选 • 全球云部署、K8S支持 和模型发布过程抽象成组件,用 DAG 串 择 DS。 • 分布式去中心化以保证稳定 联,使用拖拽和配置的方式实现低代码开 • 满足业务需求和调度功能要求 • 全量替换 Airflow 发。 • 满足大数据量要求 • 解决全球大数据调度易用问题,赋能 • 实现对海量数据存算 • 用户使用成本低 分析团队快速开发调度任务 • 可以复用ML流程 • DAG 执行引擎 ☆ 高性能、大批量数据调度 ☆ 全球云部署、易用数据开发 ☆ AI/ML Ops调度融合 www.oceanbase.com
29 .Apache DolphinScheduler Use Case – 360的应用 任务失败重试/告警 你想重试几次 每次间隔多 久失败要不要发邮件告诉你? 各种复杂调度 5 资源文件的在线上传,管理 定时调度、依赖调度、手动 4 6 jar 包不怕丢 调度 丰富的任务类型 实现集群高可用 spark shell MR HIVE 3 7 集群去中心化 python… 工作流 可视化 支持多租户 2 8 拖拽生成 DAG 咱俩不能用一个账号 分布式易扩展 权限管理 1 9 无单点问题 我只能访问授权的项目和资 资源不够了要扩容 源 www.oceanbase.com