Apache DolphinScheduler介绍与部署
目录
一、软件介绍
1、软件概述
2、发展历史
3、名词解释
4、模块介绍
软件部署
1、下载发布包
2、上传与解压
3、启动
4、浏览器验证
一、软件介绍
1、软件概述
Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
官网:https://dolphinscheduler.apache.org/zh-cn
官方文档:https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2
DolphinScheduler 的主要特性如下:
- 易于部署,提供四种部署方式,包括Standalone、Cluster、Docker和Kubernetes
- 易于使用,可以通过四种方式创建和管理工作流,包括Web UI、Python SDK和Open API
- 高可靠高可用,多主多从的去中心化架构,原生支持横向扩展
- 高性能,性能比其他编排平台快N倍,每天可支持千万级任务
- Cloud Native,DolphinScheduler支持编排多云/数据中心工作流,支持自定义任务类型
- 对工作流和工作流实例(包括任务)进行版本控制
- 工作流和任务的多种状态控制,支持随时暂停/停止/恢复它们
- 多租户支持
- 其他如补数支持(Web UI 原生),包括项目和数据源的权限控制
2、发展历史
2019年3月,易观决定将DolphinScheduler项目开源,在GitHub上发布了第一个开源版本(1.0.0)。开源后,吸引了众多开发者的关注,社区开始逐渐形成,为项目的后续发展奠定了基础。
2020年7月,DolphinScheduler顺利进入Apache软件基金会进行孵化,这标志着项目得到了更广泛的认可和支持。进入Apache孵化期后,项目遵循Apache的开源治理模式,吸引了更多来自不同企业和组织的开发者参与贡献,进一步推动了项目的发展。
2021年11月,DolphinScheduler从Apache孵化器顺利毕业,成为Apache顶级项目(TLP)。这是项目发展的一个重要里程碑,意味着DolphinScheduler在技术、社区、治理等方面都达到了较高的水平,得到了Apache软件基金会的充分肯定。
3、名词解释
DAG: 全称 Directed Acyclic Graph,简称 DAG。工作流中的 Task 任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。举例如下图:
流程定义:通过拖拽任务节点并建立任务节点的关联所形成的可视化DAG
流程实例:流程实例是流程定义的实例化,可以通过手动启动或定时调度生成。每运行一次流程定义,产生一个流程实例
任务实例:任务实例是流程定义中任务节点的实例化,标识着某个具体的任务
任务类型:目前支持有 SHELL、SQL、SUB_WORKFLOW(子工作流)、PROCEDURE、MR、SPARK、PYTHON、DEPENDENT(依赖),同时计划支持动态插件扩展,注意:其中 SUB_WORKFLOW类型的任务需要关联另外一个流程定义,被关联的流程定义是可以单独启动执行的
调度方式:系统支持基于 cron 表达式的定时调度和手动调度。命令类型支持:启动工作流、从当前节点开始执行、恢复被容错的工作流、恢复暂停流程、从失败节点开始执行、补数、定时、重跑、暂停、停止、恢复等待线程。 其中 恢复被容错的工作流 和 恢复等待线程 两种命令类型是由调度内部控制使用,外部无法调用
定时调度:系统采用 quartz 分布式调度器,并同时支持cron表达式可视化的生成
依赖:系统不单单支持 DAG 简单的前驱和后继节点之间的依赖,同时还提供任务依赖节点,支持流程间的自定义任务依赖
优先级 :支持流程实例和任务实例的优先级,如果流程实例和任务实例的优先级不设置,则默认是先进先出
邮件告警:支持 SQL任务 查询结果邮件发送,流程实例运行结果邮件告警及容错告警通知
失败策略:对于并行运行的任务,如果有任务失败,提供两种失败策略处理方式,继续是指不管并行运行任务的状态,直到流程失败结束。结束是指一旦发现失败任务,则同时Kill掉正在运行的并行任务,流程失败结束
补数:补历史数据,支持区间并行和串行两种补数方式,其日期选择方式包括日期范围和日期枚举两种
4、模块介绍
-
dolphinscheduler-master master模块,提供工作流管理和编排服务。
-
dolphinscheduler-worker worker模块,提供任务执行管理服务。
-
dolphinscheduler-alert 告警模块,提供 AlertServer 服务。
-
dolphinscheduler-api web应用模块,提供 ApiServer 服务。
-
dolphinscheduler-common 通用的常量枚举、工具类、数据结构或者基类
-
dolphinscheduler-dao 提供数据库访问等操作。
-
dolphinscheduler-extract extract模块,包含master/worker/alert的sdk
-
dolphinscheduler-service service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用
-
dolphinscheduler-ui 前端模块
软件部署
安装参考:https://dolphinscheduler.apache.org/en-us/docs/3.2.2/guide/installation/standalone
1、下载发布包
软件地址:https://dolphinscheduler.apache.org/zh-cn/download/3.2.2
2、上传与解压
cd /usr/local/soft/
tar -zxvf apache-dolphinscheduler-3.2.2-bin.tar.gz
3、启动
cd /usr/local/soft/apache-dolphinscheduler-3.2.2-bin
./bin/dolphinscheduler-daemon.sh start standalone-server
4、浏览器验证
浏览器输入:http://node11:12345/dolphinscheduler/ui/login
用户名admin 密码dolphinscheduler123
点击登录,查看界面