一百三十、海豚调度器——用DolphinScheduler定时调度HiveSQL任务

一、目标

用海豚调度器对Hive数仓各层数据库的SQL任务进行定时调度。比如,DWD层脱敏清洗表的动态插入数据、DWS层指标表的动态插入数据

二、工具版本

1、海豚调度器:apache-dolphinscheduler-2.0.5-bin.tar.gz

2、Hive:apache-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.enabled=false;
set hive.auto.convert.join=false;
set mapreduce.map.memory.mb=10150;
set mapreduce.map.java.opts=-Xmx6144m;
set mapreduce.reduce.memory.mb=10150;
set mapreduce.reduce.java.opts=-Xmx8120m;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.dynamic.partition=true;
set hive.exec.parallel=true;
set hive.support.concurrency=false;
set mapreduce.map.memory.mb=4128;
set hive.vectorized.execution.enabled=false;

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=1000;
set hive.exec.max.dynamic.partitions=1500;

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不要加分号;

乐于奉献共享,帮助你我他!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/40499.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

selenium WebDriver 中的几种等待--sleep(),implicitly_wait(),WebDriverWait()

目录 强制等待:sleep() 隐式等待:implicitly_wait() 显示等待:WebDriverWait() 与until()或者until_not()方法结合使用 WebDriverWait与expected_conditions结合使用 显示等待,自定义等待条件 强制等待:sleep() import time sleep(5) #等待5秒 设置固定休眠时间&#x…

webpack打包

webpack打包 1、webpack再次打包2、webpack的入口和出口 1、webpack再次打包 背景:代码增加之后,如何打包呢? 1、确保在src/index.js引用和使用 2、重新执行yarn build打包命令 2、webpack的入口和出口 1、新建webpack.config.js配置文件 …

Redis的五大数据类型和各自的

- 字符串(String) string 数据结构是简单的 key-value 类型。简单动态字符串**(simple dynamic string,SDS)。相比于 C 的原生字符串,Redis 的 SDS 不光可以保存文本数据还可以保存二进制数据,并且获取字符串长度复杂度…

django框架向DRF框架演变过程详解

一、Django框架实现项目查询接口 主要知识点: Django框架视图函数 1、在 Django 项目中创建一个应用(如果还没有创建): python manage.py startapp projects 2、在项目的 models.py 文件中定义项目模型 from django.db impor…

JavaWeb(5)——HTML、CSS、JS 快速入门

一、JavaScript 对象 二、JavaScript BOM对象 和 DOM对象 关于BOM主要对 Window 和 location 进行说明&#xff1a; 三、JavaScript 事件监听 事件绑定 常见事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

OpenCv之图像形态学

目录 一、形态学 二、图像全局二值化 三、自适应阈值二值化 四、腐蚀操作 五、获取形态学卷积核 六、膨胀操作 七、开运算 八、闭运算 一、形态学 定义: 指一系列处理图像形状特征的图像处理技术形态学的基本思想是利用一种特殊的结构元(本质上就是卷积核)来测量或提取输…

【SQL】计算每个人的完成率

目录 前提任务的完成率前三名拓展&#xff1a;达梦如何去实现除法有余数拓展&#xff1a;MySQL 任务的完成率前三名 前提 达梦数据库&#xff1a; select 1/3; # 0不要求四舍五入 任务的完成率前三名 # nick_name 人名 # finishNum 当前这个人的任务完成数 # total 当前这…

STM32学习笔记(十二)丨RTC实时时钟

本篇文章包含的内容 一、计算机底层计时系统——时间戳1.1 时间戳简介1.2 GMT/UTC1.3 C语言和time.h库 二、STM32的BKP和RTC时钟2.1 BKP&#xff08;Backup Registers&#xff09;备份寄存器2.2 RTC&#xff08;Real Time Clock&#xff09;实时时钟2.2.1 RTC简介2.2.2 RTC的内…

概率论和随机过程的学习和整理20:条件概率我知道,但什么是条件期望?可用来解决递归问题

目录 1 目标问题&#xff1a; 什么是条件期望&#xff1f; 条件期望有什么用&#xff1f; 2 条件期望&#xff0c;全期望公式 3 条件期望&#xff0c;全期望公式 和 条件概率&#xff0c;全概率公式的区别和联系 3.1 公式如下 3.2 区别和联系 3.3 概率和随机过程 4 有什…

简单认识MySQL数据库索引

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、索引的概念1、简介2、作用3、索引的副作用&#xff1a;4、创建索引的原则依据5、索引的分类 二、索引的增删改查1.创建索引&#xff08;1&#xff09;创建普通索…

VoIP监控工具有什么作用

VoIP 监控工具利用思科的 IPSLA 技术生成合成流量并监控客户端体验的呼叫质量。与被动监控VoIP指标相反&#xff0c;IPSLA技术允许IT管理员主动并在潜在问题发生之前检测到它们&#xff0c;这使组织能够轻松遵守严格的SLA指标。 思科 IPSLA 技术在两台设备之间创建流量&#x…

使用semanage管理SELinux安全策略

semanage命令用于管理SELinux的策略&#xff0c;格式为“semanage [选项] [文件]”。 SELinux服务极大地提升了Linux系统的安全性&#xff0c;将用户权限牢牢地锁在笼子里。semanage命令可以设置文件、目录的策略&#xff0c;还可以管理网络端口、消息接口。 常用参数&#xf…

240. 搜索二维矩阵 II

题目描述&#xff1a; 主要思路&#xff1a; 利用矩阵中的单调性进行搜索。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int nmatrix.size(),mmatrix[0].size();int in-1,j0;while(i>0&&j<m){if(m…

架构训练营学习笔记:4-2 存储架构模式之复制架构

高可用的关键指标 问题&#xff1a;分为故障跟灾难。不是有了多活架构就不在用复制架构 &#xff0c;还是之前的合适原则&#xff1a;多活架构的技术复杂度 跟成本都比复制架构高。 高可用的关键指标 恢复时间目标(RecoveryTimeObjective&#xff0c;RTO)指为避免在灾难发生后…

测试基础 Android 应用测试总结

目录 启动&#xff1a; 功能介绍&#xff0c;引导图&#xff0c;流量提示等&#xff1a; 权限&#xff1a; 文件错误 屏幕旋转&#xff1a; 流量&#xff1a; 缓存&#xff08;/sdcard/data/com.your.package/cache/&#xff09;&#xff1a; 正常中断&#xff1a; 异…

jupyter notebook更换虚拟环境(内核)

jupyter notebook更换虚拟环境&#xff08;内核&#xff09; 创建一个新的虚拟环境 # stk_env 虚拟环境的名字&#xff0c;任取。 conda create -n stkenv python3.9激活虚拟环境 conda activate stkenv安装ipykernel # 为该虚拟环境&#xff0c;安装内核。 conda install -c a…

【Spring core学习三】对象装配:获取Bean对象的四种方式

目录 对象装配的四种方式 &#x1f337;1、Autowired属性注入&#xff08;使用最多&#xff09; &#x1f337;2、Setter注入 &#x1f337;3、构造函数注入 &#x1f337;4、Resource&#xff1a;另⼀种注⼊关键字 对象装配的四种方式 对象装配&#xff1a;获取bean对象也…

linux之Ubuntu系列(-)常见指令 重定向

Ubuntu 中文 版本 注意点 通过修改语言改成英文 在终端录入&#xff1a;export LANGen_US 在终端录入&#xff1a;xdg-user-dirs-gtk-update 单用户和多用户 命令格式 command [-选项] [参数] –查看命令的帮助 命令 --help man 命令 |操作键| 功能| |空格键|-显示手册的下…

B070-项目实战-用户模块--手机注册

目录 用户模块需求分析静态网站部署与调试两种前端项目的部署两种前端项目的调试(热部署)创建静态web项目 注册分析与设计分析需求设计 界面设计&#xff08;ui&#xff09;设计表&#xff08;后台&#xff09; 流程设计&#xff08;后台&#xff09;三范式表设计流程设计 相关…

Appium+python自动化(十二)- Android UIAutomator终极定位凶器(超详解)

简介 乍眼一看&#xff0c;小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了&#xff0c;其实不然&#xff0c;上次介绍和分享的大哥是uiautomatorviewer&#xff0c;是一款定位工具。今天介绍的是一个java库&#xff0c;提供执行自动化测试的各种API。 Android团队在4…