DolphinScheduler知识点总结

DolphinScheduler简介

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

DolphinScheduler核心架构

DolphinScheduler的主要角色如下:

MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交、任务监控,并同时监听其它MasterServer和WorkerServer的健康状态。

WorkerServer也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。

ZooKeeper服务,系统中的MasterServer和WorkerServer节点都通过ZooKeeper来进行集群管理和容错。

Alert服务,提供告警相关服务。

API接口层,主要负责处理前端UI层的请求。

UI,系统的前端页面,提供系统的各种可视化操作界面。

DolphinScheduler使用

安全中心

队列管理

Yarn调度器的资源队列。此处创建出的队列,可供后续任务进行选择。

注意:在DolphinScheduler中创建队列,并不会影响到Yarn调度器的队列配置。

租户管理

租户对应的是Linux系统用户,是Worker执行任务使用的用户。如果Worker所在节点没有这个用户,Worker会在执行任务时创建这个用户。

租户编码:对应Worker执行任务所使用的用户名。

租户名称:用于在DolphinScheduler中显示。

队列:该租户提交Yarn任务时的默认队列。

用户管理

用户对应的是DolphinScheduler的用户,用于登录DolphinScheduler。

用户分管理员用户和普通用户。默认情况下,管理员只有授权和用户管理等权限,而普通用户只有创建项目,定义工作流、执行工作流等权限。

告警组管理

告警组可包含多名用户,用于指定告警发送对象。

Worker分组管理

在任务执行时,可以将任务分配给指定Worker组,最终由该组中的Worker节点执行该任务。默认情况下,所有Worker均位于default组。

令牌管理

令牌用于通过接口访问DolphinScheduler各项服务时的用户验证。普通用户通过UI页面访问各项服务时,无需使用令牌。若需将DolphinScheduler与第三方服务进行集成,则需调用其接口,此时需使用令牌。

项目管理

工作流定义

用于定义工作流,包括工作流各节点任务详情及各节点依赖关系等。

工作流实例

工作流每执行一次就会生成一个工作流示例。此处可查看正在运行的工作流以及已经完成的工作流。

任务实例

工作流中的一个节点任务,每执行一次就会生成一个任务实例。此处可用于查看正在执行的节点任务以及已经完成的节点任务。

DolphinScheduler进阶

工作流传参

DolphinScheduler支持对任务节点进行灵活的传参,任务节点可通过${参数名}引用参数值。

局部参数

局部参数是指只针对单个任务节点有效的参数

全局参数

全局参数是指针对整个工作流的所有任务节点都有效的参数。

注意:局部参数优先级大于全局参数

系统内置参数

DolphinScheduler提供了一些时间相关的系统参数,方便定时调度使用。

1)系统参数

参数

说明

${system.biz.date}

定时时间前一天,格式为 yyyyMMdd

${system.biz.curdate} 

定时时间,格式为 yyyyMMdd

${system.datetime}     

定时时间,格式为 yyyyMMddHHmmss

2)时间自定义参数

$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd]

参数

说明

$[add_months(yyyyMMdd,12*N)]

后 N 年

$[add_months(yyyyMMdd,-12*N)]

前 N 年

$[add_months(yyyyMMdd,N)]

后 N 月

$[add_months(yyyyMMdd,-N)]

前 N 月

$[yyyyMMdd+7*N]

后 N 周

$[yyyyMMdd-7*N]

前 N 周

$[yyyyMMdd+N]

后 N 天

$[yyyyMMdd-N]

前 N 天

$[HHmmss+N/24]

后 N 小时

$[HHmmss-N/24]

前 N 小时

$[HHmmss+N/24/60]

后 N 分钟

$[HHmmss-N/24/60]

前 N 分钟

引用依赖资源

有些任务需要引用一些额外的资源,例如MR、Spark等任务需引用jar包,Shell任务需要引用其他脚本等。DolphinScheduler提供了资源中心来对这些资源进行统一管理。

告警通知

1)使用DolphinScheduler的邮件告警通知功能,需要准备一个电子邮箱账号,并启用SMTP服务。

2)修改AlertServer配置文件/opt/module/dolphinscheduler/conf/alert.properties

工作流失败重跑

若工作流执行到一半失败了,需要重新启动工作流。重新启动时可选择从起点开始执行,也可选择从断点开始执行。

posted @ 2022-05-16 15:53  1243741754  阅读(856)  评论(0编辑  收藏  举报