Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中
- mysql maven 仓库 中下载对应版本的 JDBC 驱动,将其移入
api-server/libs以及worker-server/libs文件夹中,最后重启api-server和worker-server服务,即可使用 MySQL 数据源。如果你使用容器启动 DolphinScheduler,同样也是将 JDBC 驱动挂载放到以上两个服务的对应路径下后,重启驱动即可。创建MySQL数据源
由于前面部署DolphinScheduler集群已将MySQL的驱动复制到所有节点master和worker、api-server、alert-server上了,因此这里可以开始创建MySQL数据源
- 数据源:选择 MYSQL
- 数据源名称:输入数据源的名称
- 描述:输入数据源的描述
- IP 主机名:输入连接 MySQL 的 IP
- 端口:输入连接 MySQL 的端口
- 用户名:设置连接 MySQL 的用户名
- 密码:设置连接 MySQL 的密码
- 数据库名:输入连接 MySQL 的数据库名称
- Jdbc 连接参数:用于 MySQL 连接的参数设置,以 JSON 形式填写

jdbc连接参数如下:
{ "useSSL": "false", "useUnicode": "true", "characterEncoding": "utf-8", "allowMultiQueries": "true", "zeroDateTimeBehavior": "convertToNull", "allowPublicKeyRetrieval": "true" }点击数据源记录的数据源参数

创建ClickHouse数据源
这里我们使用前面部署好的ClickHouse,CLICKHOUSE数据源驱动原生已支持

工作流实践
SQL工作流
拖拉SQL引擎图标,创建名称为sql_node1任务定义
insert into table01 values('1001',99.9,'2022-08-02 22:00:00'); CREATE TABLE table01 ( `id` String, `price` Float64, `create_time` DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(create_time) ORDER BY id;
创建名称为sql_node2任务定义
insert into table02 values('1002',199.9,'2022-08-02 23:00:00'); CREATE TABLE table02 ( `id` String, `price` Float64, `create_time` DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(create_time) ORDER BY id;
创建名称为sql_node3任务定义insert into table03 select * from table01 union all select * from table02; CREATE TABLE table03 ( `id` String, `price` Float64, `create_time` DateTime ) ENGINE = MergeTree() PARTITION BY toYYYYMM(create_time) ORDER BY id;
编辑好工作流的依赖关系,sql_node1和sql_node2都完成后再执行sql_node3,保存名称为sql演示工作流。

上线sql演示工作流并点击执行,查询工作流实例执行结果

查询任务实例执行结果

使用ClickHouse的客户端登录ClickHouse查询数据,已经显示正确的结果

工作流定时
大部分任务都会有定时运行的需求,这就需要定时工作流,创建步骤:点击项目管理->工作流->工作流定义,进入工作流定义页面,上线工作流,点击"定时"按钮,弹出定时参数设置弹框:
-
选择起止时间。在起止时间范围内,定时运行工作流;不在起止时间范围内,不再产生定时工作流实例。
-
添加一个每隔 5 分钟执行一次的定时。
-
失败策略、通知策略、流程优先级、Worker 分组、通知组、收件人、抄送人同工作流运行参数。
点击"创建"按钮,创建定时成功,此时定时状态为"下线",定时需上线才生效。
定时上线:点击"定时管理"按钮,进入定时管理页面,点击"上线"按钮,定时状态变为"上线",如下图所示,工作流定时生效。

告警
告警模块支持场景
用户需要创建告警实例,在创建告警实例时,需要选择告警策略,有三个选项,成功发、失败发,以及成功和失败都发。在执行完工作流或任务时,如果触发告警,调用告警实例发送方法会进行逻辑判断,将告警实例与任务状态进行匹配,匹配则执行该告警实例发送逻辑,不匹配则过滤。创建完告警实例后,需要同告警组进行关联,一个告警组可以使用多个告警实例。 告警模块支持场景如下:

邮件告警示例
先准备一个邮箱,开启POP3/SMTP服务,由于是要用来发送主要是SMTP,得到授权码,保存修改。

使用管理员用户登录,进入到安全中心,选择告警实例管理,创建一个告警实例,然后选择对应的告警插件EMAIL,填写相关如下参数。

然后选择告警组管理,创建告警组,选择相应的告警实例即可。

工作流定义运行中配置通知策略为成功或失败都发,告警组为前面创建测试告警组

查看邮箱确认已收到邮件信息

**本人博客网站 **IT小神 www.itxiaoshen.com