DolphinScheduler了解

ds简介

DolphinScheduler 是一个分布式,易扩展的可视化 DAG(有向无环图图)工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。

有以下主要特点:

  1. 用于大数据处理,大数据工作流调度。
  2. 以DAG图的方式,将任务按照依赖关系串联起来。
  3. 支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql)、Python、Sub_Process、Procedure等。
  4. 可以实时监控任务运行情况,任务开始、结束、异常状态均可以通过邮件、微信、钉钉等方式推送通知。
  5. 部署简单,配置简单。

举例来说,例如在每天凌晨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执行。

 

创建-执行工作流的过程:

  1. 用户在UI页面绘制了DAG工作流,其中DAG工作流包含了多个任务。
  2. UI页面(浏览器)调用API接口,把任务保存到数据库。
  3. 由于多个master没有主次之分,每个master有一个扫描线程,去抢占DAG工作流。
  4. 抢到DAG工作流的master去切分任务。
  5. master切分完了任务,再去下发到多个worker去执行。
  6. worker接收到任务,会先给master一个ack,表示worker已经接收到了。
  7. 然后worker就可以执行任务了。
  8. worker执行任务过程中,会时刻向master报告进度和状态。
  9. master接收到了任务进度和状态后,会存储到数据库中,所以我们在UI页面就能看到任务的进度和状态了。
  10. loggerserver是用来记录任务的执行日志的,当任务执行失败时候,可以从UI页面查看到任务执行的日志。
  11. alert会在出现错误时候,进行告警。

ds怎么用

 

posted @   szcj~  阅读(437)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示