引言

DolphinScheduler(原:Easy Scheduler)是一个分布式工作流任务调度系统,主要解决数据研发ETL错综复杂的依赖关系,而不能直观监控任务健康状态等问题。Easy Scheduler以DAG流式的方式将Task组装起来,跳过可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作。EasyScheduler由在工作流调度方面工作多年的多位小伙伴研发而成。
Easy Scheduler使用了很多优秀的开源项目,比如google的guava、guice、grpc,netty,ali的bonecp,quartz,以及apache的众多开源项目等等!

设计特点

DolphinScheduler是一个分布式工作流任务调度系统,主要解决数据研发ETL错综复杂的依赖关系所带来的各种问题。
其主要目标如下:

    • 以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态。
    • 支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql)、Python、Sub_Process、Procedure等。
    • 支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill任务等操作。
    • 支持工作流优先级、任务优先级及任务的故障转移及任务超时告警/失败。
    • 支持工作流全局参数及节点自定义参数设置。
    • 支持资源文件的在线上传/下载,管理等,支持在线文件创建、编辑。
    • 支持任务日志在线查看及滚动、在线下载日志等。
    • 实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化。
    • 支持对Master/Worker cpu load,memory,cpu在线查看。
    • 支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计。
    • 支持补数。
    • 支持多租户。
    • 支持国际化。

      架构设计

      image.png

      基本组成

      DolphinScheduler由如下几个模块组成:
  • MasterServer:MasterServer 采用分布式无中心设计理念,MasterServer 主要负责 DAG 任务切分、任务提交监控,并同时监听其它 MasterServer 和 WorkerServer 的健康状态。MasterServer 服务启动时向 Zookeeper 注册临时节点,通过监听 Zookeeper 临时节点变化来进行容错处理。

  • WorkerServer :WorkerServer 也采用分布式无中心设计理念,WorkerServer 主要负责任务的执行和提供日志服务。WorkerServer服务启动时向 Zookeeper 注册临时节点,并维持心跳。
  • ZooKeeper :系统中的 MasterServer 和 WorkerServer 节点都通过 ZooKeeper 来进行集群管理和容错。另外系统还基于ZooKeeper进行事件监听和分布式锁。
  • Task Queue :提供任务队列的操作,目前队列也是基于 Zookeeper 来实现。由于队列中存的信息较少,不必担心队列里数据过多的情况,实际上压测过百万级数据存队列,对系统稳定性和性能没影响。
  • Alert:提供告警相关接口,接口主要包括告警两种类型的告警数据的存储、查询和通知功能。其中通知功能又有邮件通知SNMP(暂未实现)两种。
  • API:API接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。
    接口包括工作流的创建、定义、查询、修改、发布、下线、手工启动、停止、暂停、恢复、从该节点开始执行等等。
  • UI:系统的前端页面,提供系统的各种可视化操作界面。

    参考

    官方:Easy Scheduler使用手册(旧,已停止维护)
    https://analysys.github.io/easyscheduler_docs_cn
    官方:DolphinScheduler官方网站
    https://dolphinscheduler.apache.org/en-us
    知乎:分布式工作流任务调度系统Easy Scheduler正式开源
    https://zhuanlan.zhihu.com/p/61778839
    CSDN:Easy Schedulerr大数据调度系统架构分析
    https://blog.csdn.net/qq825193156/article/details/85273503