网站首页 > 开源技术 正文
Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
SQL节点
测试sql节点,简单做个测试创建一张表并插入测试数据,再从这张表数据并行导入到第二张和第三张表。
1、创建测试库
Create database testdb;
2、创建三张表
CREATE TABLE `testa`(
`id` int,
`name` string);
CREATE TABLE `testb`(
`id` int,
`name` string);
CREATE TABLE `testc`(
`id` int,
`name` string);
3、创建新的工作流
4、在工作流创建画布中选择数据库图标,创建hive任务,在testa表中插入测试数据。
5、创建hive任务,将testa中的测试数据插入到testb中。
6、创建hive任务,将testa中的测试数据插入到testc中。
7、使用箭头给三个任务建立联系,指定先后执行顺序,保存并设置工作流名称。
8、上线,执行,查看运行结果。
Datax节点
1、因为在安装时没有配置datax路径,先停止ds集群。演示一个从hive数据导入到mysql的例子。
[root@hadoop101 ds]# sh bin/stop-all.sh
2、在worker节点102、103安装datax。
[root@hadoop102 module]# wget datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
[root@hadoop102 module]# tar -zxvf datax.tar.gz
[root@hadoop102 module]# scp -r datax hadoop103:/opt/module/
3、配置DolphinScheduler env下的dolphinscheduler_env.sh,设置datax路径
[root@hadoop101 ds]# vim conf/env/dolphinscheduler_env.sh
exportDATAX_HOME=/opt/module/datax/bin/datax.py
[root@hadoop101 ds]# scp conf/env/dolphinscheduler_env.sh hadoop102:/opt/module/ds/conf/env/
[root@hadoop101 ds]# scp conf/env/dolphinscheduler_env.sh hadoop103:/opt/module/ds/conf/env/
4、重启ds,创建datax节点
[root@hadoop101 ds]# sh bin/start-all.sh
5、创建新的工作流。
6、在工作流画布上添加DataX任务。
7、由于默认数据源中不存在hive,所以开启自定义模板,放入对应json,在json中定义了具体的操作和必要的配置参数。hdfs路径上存在分区目录,在实际情况导数据的时候分区肯定不能写死,需要传参,所以使用自定义参数。
8、设置好参数后,启动任务。
9、查看任务执行结果。
系统参数
1、刚才演示的datax任务中网站分区和时间分区参数都写成了固定值,那么在实际环境中,跑离线数仓任务,都是今天跑昨天的全量数据,所以时间参数不能定死,需要用到以下参数。
变量 | 含义 |
${system.biz.date} | 日常调度实例定时的定时时间前一天,格式为 yyyyMMdd,补数据时,该日期 +1 |
${system.biz.curdate} | 日常调度实例定时的定时时间,格式为 yyyyMMdd,补数据时,该日期 +1 |
${system.datetime} | 日常调度实例定时的定时时间,格式为 yyyyMMddHHmmss,补数据时,该日期 +1 |
2、参数里是引用系统参数,也可以是指定常量。也可以使用以下格式
* 后 N 年:$[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]
3、测试,发现日期已发生变化,变成了前一天的日期,该函数可以用来跑每日的定时任务。
子节点
1、创建工作流,演示一个完整流程,先跑spark任务,跑完之后跑datax任务。
2、创建三个spark节点任务。
3、选中子添加点图标,添加对应datax子节点。
4、使用箭头确定任务的先后执行顺序。
5、删除HDFS和mysql上的历史数据。
[root@hadoop103 ~]# hadoop dfs -rm -r -skipTrash /user/hive/warehouse/dwd.db
[root@hadoop103 ~]# hadoop dfs -rm -r -skipTrash /user/hive/warehouse/dws.db
[root@hadoop103 ~]# hadoop dfs -rm -r -skipTrash /user/hive/warehouse/ads.db
TRUNCATE TABLE user_question_detail
6、上线、执行。
7、查看运行结果。
配置邮件服务器
1、开启邮箱的SMTP服务,并且获取对应授权码,我这里接收分别为zxuxrvbrwcsydhfi 和ihohwbjladjdeahh。
2、在alert.properties配置文件中做如下配置。由于我演示的阿里云环境,默认25端口不开启,改用stmps服务对应587端口。
[root@hadoop101 conf]# vim alert.properties
mail.protocol=SMTP
mail.server.host=smtp.qq.com
mail.server.port=587
mail.sender=2473196869@qq.com
mail.user=2473196869@qq.com
mail.passwd=zxuxrvbrwcsydhfi
# TLS
mail.smtp.starttls.enable=true
# SSL
mail.smtp.ssl.enable=false
mail.smtp.ssl.trust=smtp.qq.com
[root@hadoop101 conf]# scp alert.properties hadoop102:/opt/module/ds/conf/
[root@hadoop101 conf]# scp alert.properties hadoop103:/opt/module/ds/conf/
[root@hadoop101 conf]# cd ..
[root@hadoop101 ds]# sh bin/stop-all.sh
[root@hadoop101 ds]# sh bin/start-all.sh
3、创建测试工作流。
4、执行工作流,并在启动前配置参数,配置为任务成功则发送邮件。
5、执行成功后,查看邮件。
了解更多内容:
任务调度系统的后起之秀——DolphinScheduler(二)
任务调度系统的后起之秀——DolphinSchedular(一)
猜你喜欢
- 2024-09-12 盘点 12 月份爆火的 GitHub 项目(github排行榜)
- 2024-09-12 DolphinScheduler海豚调度器删除历史日志问题
- 2024-09-12 数据质量管理(数据质量管理平台目前支持通过扫描)
- 2024-09-12 dolphin scheduler多数据库存储(hibernate多数据库支持)
- 2024-09-12 海豚DolphinScheduler系统调度操作分析
- 2024-09-12 源码解析-- 如何做到不同Task的日志输出到不同的日志文件
- 2024-09-12 运维实战:DolphinScheduler 生产环境升级
- 2024-09-12 任务调度工具(任务调度工具怎么用)
- 2024-09-12 dolphinscheduler集成数据质量任务
- 2024-09-12 源码解析--海豚调度MasterServer流程执行过程分析
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)