抖音的电子商务网站建设,山东住房和城乡建设厅网站,上海网页设计师培训,免费网站教程一、目标
用海豚调度器对Hive数仓各层数据库的SQL任务进行定时调度。比如#xff0c;DWD层脱敏清洗表的动态插入数据、DWS层指标表的动态插入数据
二、工具版本
1、海豚调度器#xff1a;apache-dolphinscheduler-2.0.5-bin.tar.gz
2、Hive#xff1a;apache-hive-3.1.2…一、目标
用海豚调度器对Hive数仓各层数据库的SQL任务进行定时调度。比如DWD层脱敏清洗表的动态插入数据、DWS层指标表的动态插入数据
二、工具版本
1、海豚调度器apache-dolphinscheduler-2.0.5-bin.tar.gz
2、Hiveapache-hive-3.1.2-bin.tar.gz
三、实施步骤
一在海豚调度器的数据源中心模块创建Hive各数据库的数据源 第一步点击海豚调度器的数据源中心模块
第二步点击创建数据源
第三步编辑数据源包括数据源类型、数据源名称、IP主机名、端口、用户名、数据库名
第四步点击测试连接
第五步连接测试弹出成功提示后点击编辑
二在海豚调度器的项目管理模块创建项目
第一步点击海豚调度器的项目管理模块
第二步点击创建项目
第三步编辑项目名称和所属用户
第四步项目名称和所属用户编辑好后点击编辑
三点击创建好的项目在工作流定义模块中创建工作流
第一步点击创建好的项目 第二步在项目中的工作流定义模块中点击创建工作流 第三步在工作流中拖拽需要的SHELL控件然后在SHELL节点编辑HiveSQL脚本 1、由于是通过HiveSQL编辑的脚本去定时调度因此这里选择拖拽SHELL控件
2、在SHELL节点修改节点名称以及描述
3、最重要的是在SHELL节点编辑HiveSQL脚本。脚本内容如下
#! /bin/bash source /etc/profile
hive -e use hurys_dc_dws;
set hive.vectorized.execution.enabledfalse; set hive.auto.convert.joinfalse; set mapreduce.map.memory.mb10150; set mapreduce.map.java.opts-Xmx6144m; set mapreduce.reduce.memory.mb10150; set mapreduce.reduce.java.opts-Xmx8120m; set hive.exec.dynamic.partition.modenonstrict; set hive.exec.dynamic.partitiontrue; set hive.exec.paralleltrue; set hive.support.concurrencyfalse; set mapreduce.map.memory.mb4128; set hive.vectorized.execution.enabledfalse;
set hive.exec.dynamic.partitiontrue; set hive.exec.dynamic.partition.modenonstrict; set hive.exec.max.dynamic.partitions.pernode1000; set hive.exec.max.dynamic.partitions1500;
insert overwrite table dws_queue_dynamic_statistics_30min partition(day) select t1.device_no, t1.create_time, case when minute(create_time ) 30 then concat(substr(create_time, 1, 14), 30:00) else concat(substr(create_time, 1, 14), 00:00)end as start_time, t1.lane_no, t2.name, t3.direction, t1.queue_count, t1.queue_len, t1.day from hurys_dc_dwd.dwd_queue_dynamic as t1 right join hurys_dc_dws.dws_device_name as t2 on t2.device_no t1.device_no right join hurys_dc_dws.dws_device_direction as t3 on t3.device_no t1.device_no where t1.create_time is not null group by t1.device_no, t1.create_time,t1.lane_no, t2.name, t3.direction, t1.queue_count, t1.queue_len, t1.day
注意最后一条SQL不需要加分号
4、除了节点名称、描述、脚本需要编辑外其他默认即可。最后点击确认添加
第四步在SHELL节点确认添加后点击保存、然后设置DAG图名称 1、在SHELL节点编辑完确认添加后点击页面右上方的保存
2、在设置DAG图名称窗口设置DAG图的名称和描述选择租户
3、设置名称完后点击添加
四工作流创建好后先上线工作流再点击运行工作流 五工作流运行后在工作流实例和任务实例可以查看工作流执行结果 六工作流运行结束后在Hive中验证一下数据是否成功动态插入 从新建的空白表到工作流运行后查询表中有数据说明海豚调度HiveSQL任务成功
七如果要设置定时执行的话就在工作流建好后设置定时 第一步在工作流设置定时 第二步设置定时参数设置好后点击创建 第三步创建好定时后点击工作流的定时管理 第四步点击定时管理中的定时上线 第五步这样定时任务就设置好了可以看到工作流的定时任务已经上线 到这里用海豚调度器定时调度HiveSQL脚本任务的演示就结束了
八最后总结一下有两点需要注意
第一点海豚对于HiveSQL的SQL调度能力似乎不是特别好尤其是对一些复杂SQL的调度。因此海豚调度的是HiveSQL的脚本任务而不是直接调度HiveSQL
第二点SHELL节点脚本中最后一条SQL不要加分号 乐于奉献共享帮助你我他