DolphinScheduler了解
ds简介
DolphinScheduler 是一个分布式,易扩展的可视化 DAG(有向无环图图)工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
有以下主要特点:
- 用于大数据处理,大数据工作流调度。
- 以DAG图的方式,将任务按照依赖关系串联起来。
- 支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql)、Python、Sub_Process、Procedure等。
- 可以实时监控任务运行情况,任务开始、结束、异常状态均可以通过邮件、微信、钉钉等方式推送通知。
- 部署简单,配置简单。
举例来说,例如在每天凌晨0:10,需要处理一批离线的文件入库,可能使用shell、python、SQL等进行先后处理,通过在ds的web页面画DAG图,绘制一个完整的任务,配置定时执行。shell、python、sql等的运行状态可以实时通知给开发或者运维人员。
ds架构
DolphinScheduler 的主要角色如下:
- UI, 系统的前端页面,提供系统的各种可视化操作界面。
- API 接口层,主要负责处理前端 UI 层的请求。
- Alert 服务, 提供告警相关服务。
- ZooKeeper 服务,系统中的 MasterServer 和 WorkerServer 节点都通过 ZooKeeper 来进行集群管理和容错。Master和Worker启动后,都会向zookeeper注册,zookeeper上可以看到Master和Worker的状态。
- WorkerServer 采用分布式无中心设计理念, WorkerServer 主要负责任务的执行和提供日志服务。
- MasterServer 采用分布式无中心设计理念, MasterServer 主要负责 DAG 任务切分、任务提交、任务监控,并同时(通过zookeeper)监听其它MasterServer 和 WorkerServer 的健康状态。每个Master去监控其他Master的状态,当发现有一个Master挂了,其他Master就去抢占挂了的Master的工作,继续执行。Master监控Worker的状态,如果Worker挂了,Master就将它的工作交给其他Worker执行。
创建-执行工作流的过程:
- 用户在UI页面绘制了DAG工作流,其中DAG工作流包含了多个任务。
- UI页面(浏览器)调用API接口,把任务保存到数据库。
- 由于多个master没有主次之分,每个master有一个扫描线程,去抢占DAG工作流。
- 抢到DAG工作流的master去切分任务。
- master切分完了任务,再去下发到多个worker去执行。
- worker接收到任务,会先给master一个ack,表示worker已经接收到了。
- 然后worker就可以执行任务了。
- worker执行任务过程中,会时刻向master报告进度和状态。
- master接收到了任务进度和状态后,会存储到数据库中,所以我们在UI页面就能看到任务的进度和状态了。
- loggerserver是用来记录任务的执行日志的,当任务执行失败时候,可以从UI页面查看到任务执行的日志。
- alert会在出现错误时候,进行告警。
ds怎么用
略
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?