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
工作流失败重跑
若工作流执行到一半失败了,需要重新启动工作流。重新启动时可选择从起点开始执行,也可选择从断点开始执行。