一百三十、海豚调度器——用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不要加分号;

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整的电商平台后端API开发总结

对于开发一个Web项目来说,无论是电商还是其他品类的项目,注册与登录模块都是必不可少的;注册登录功能也是我们在日常生活中最长接触的,对于这个业务场景的需求与逻辑大概是没有什么需要详细介绍的,市面上常见的邮箱注册…

PyCharm 常用快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 1、代码编辑快捷键 序号快捷键作用1CTRLALTSPACE快速导入任意类2CTRLSHIFTENTER代码补全3SHI…

关于你欠缺的NoSQL中的redis和mongoDB

文章目录 前言一、在string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令1、STRING类型2、List类型数据的命令操作:3、举例说明list和hash的应用场景,每个至少一…

数组的递归筛选

数组递归筛选 根据一个值筛选出来通过 includes 递归 const options [{name: "ikun",options: [{name: "YAY11",},],},{name: "YAY",}, ];function findValue(orgOptions,val) {let newArr1 []orgOptions.forEach(item>{if(item.options…

网络爬虫-网易易盾滑块验证码

首先打开易盾官网,依次单击“在线体验”和“滑块拼图”选项,出现如下图所示的滑块验证码,滑动后发现Network面板成功抓包。 如图所示 其中主要的加密参数可以看出来就是acToken以及cb 我们接着下断点往下走 我通过上图可以看到 acToken&#…

实例018 类似windows xp的程序界面

实例说明 在Windows XP环境下打开控制面板,会发现左侧的导航界面很实用。双击展开按钮,导航栏功能显示出来,双击收缩按钮,导航按钮收缩。下面通过实例介绍此种主窗体的设计方法。运行本例,效果如图1.18所示。 ​编辑…

适合小公司的自动化部署脚本

背景(偷懒) 在小小的公司里面,挖呀挖呀挖。快挖不动了,一件事重复个5次,还在人肉手工,身体和心理就开始不舒服了,并且违背了个人的座右铭:“偷懒”是人类进步的第一推动力。 每次想…

ROS:nodelet

目录 一、前言二、概念三、作用四、使用演示4.1案例简介4.2nodelet 基本使用语法4.3内置案例调用 五、nodelet实现5.1需求5.2流程5.3准备5.4创建插件类并注册插件5.5构建插件库5.6使插件可用于ROS工具链5.6.1配置xml5.6.2导出插件 5.7执行 一、前言 ROS通信是基于Node(节点)的…

Rsync(二十七)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、特性 三、应用场景 四、数据的同步方式 五、rsync传输模式 六、rsync应用 七、rsync 命令 1. 格式 1.1 作为远程命令 1. 2 作为rsync服务 2. 选项 3.…

分布式定时任务组件:XXL-JOB

一、GitHub源码地址 https://github.com/xuxueli/xxl-job 二、部署文档 参考:https://blog.csdn.net/qq798867485/article/details/131415408 三、初始化数据库SQL 1、xxl_job_user XxlJob-用户管理 2、xxl_job_group XxlJob-执行器管理 3、xxl…

〖码银送书第三期〗《Python机器学习:基于PyTorch和Scikit-Learn》

前言 近年来,机器学习方法凭借其理解海量数据和自主决策的能力,已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从AlexNet模型在2012年ImageNet大赛被提出以来,机器学习和深度学习迅猛发展&#xf…

性能测试:Jmeter压测过程中的短信验证码读取

目录 问题背景 解决思路 实现方法 1. 建立JDBC连接 2. 使用JDBC请求获取验证码 3. 使用正则将验证码提取并使用 总结: 问题背景 现如今国内的大部分软件或者网站应用,普遍流行使用短信业务,比如登录、注册以及特定的业务通知等。 对…