# DolphinScheduler
# 关于 DolphinScheduler
Apache DolphinScheduler
是一个分布式的易扩展的可视化 DAG
工作流任务调度系统。旨在解决复杂大数据任务依赖关系,并为应用程序提供数据和各种 OPS
编排. DophinScheduler
以 DAG
流的方式组装任务,可以及时监控任务的执行状态,支持重试.
- 丰富的使用场景
- 高可靠性:
High Reliability
, 去中心化设计,确保稳定性。原生支持高可用High Avaliable
的任务队列,提供过载容错能力. - 搞扩展性:
High Scalability
, 支持多租户和在线资源管理。支持每天 10 万个数据任务的稳定运行
# 模块
master
:worker
aler
api web
common
dao
remote
service
ui
# 架构 architecture
MasterServer
:采用分布式无中心的设计理念,MasterServer
主要负责DAG
任务切分、任务提交监控,并同时监听其他MasterServer
和WorkerServer
的健康状态.MasterServer
服务启动时向Zookeeper
注册临时节点,通过监听Zookeeper
临时节点的变化来进行容错处理,MasterServer
基于netty
提供监听服务,该服务主要包含:Distributed Quartz
分布式调度组件,主要负责定时任务的启停操作,当quartz
调启任务后,Master
内部会有线程池具体负责处理任务的后续操作.MasterSchedulerThread
是一个扫描线程,定时扫描数据库中的command
表,根据不同的任务类型进行不同的业务操作MasterExecThread
主要负责DAG
任务切分、任务提交监控、各种不同的任务类型的逻辑处理MasterTaskExecThread
主要复制任务的可持久化
WorkerServer
:采用分布式无中心设计理念,WorkerServer
主要负责任务的执行和提供日志服务.WorkerServer
服务启动时向Zookeeper
注册临时节点,比起维持心跳,WorkerServer
基于netty
提供监听服务,该服务主要包含:- 1
Zookeeper
:系统中的MasterServer
和WorkerServer
节点都通过Zookeeper
来进行集群的管理和容错。另外系统还基于ZooKeeper
进行时间的监听和分布式锁.Task Queue
Alert
API