| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 大数据培训—DolphinScheduler(三) -> 正文阅读 |
|
[大数据]大数据培训—DolphinScheduler(三) |
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任务中网站分区和时间分区参数都写成了固定值,那么在实际环境中,跑离线数仓任务,都是今天跑昨天的全量数据,所以时间参数不能定死,需要用到以下参数。
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、执行成功后,查看邮件。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/15 23:34:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |