IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> HUE+OOZIE调度shell(hive sql) -> 正文阅读

[大数据]HUE+OOZIE调度shell(hive sql)

?目录

需求背景

解决方案

实施方法

1.编写shell文件

2.将sh文件放到hdfs上

3.创建workflow

?4.执行测试

?5.创建coordinate调度

6.执行coord


需求背景

根据业务情况,需要调度ETL数据清洗的hql语句

解决方案

通过大数据组件HUE+OOZIE调度shell脚本执行hive sql命令,方便管理,方便排错。

实施方法

1.编写shell文件

wf-etl-user.sh

#!/bin/bash
# hive目录
hive=/usr/local/service/hive/bin/hive
# 如果是输入的日期按照取输入日期;如果没输入日期取当前时间的前一天
if [ -n "$1" ]; then
  do_date=$1
else
  do_date=$(date -d "-1 day" +%F)
fi

sql="use dd_database_bigdata;
INSERT OVERWRITE TABLE dwd_content_view_log
	PARTITION(dt='$do_date')
	SELECT
	date_format('$do_date','yyyyMMdd') date_id,
	date_time data_time,
	biz_id,
	biz_type,
	behavior_type,
	get_json_object(behavior_value,'$.seconds') behavior_value,
	user_id,
	longitude,
	latitude,
	ip,
	request_ip,
	app_version,
	app_id,
	device_id,
	device_type,
	network,
	mobile_type,
	os,
	session_id,
	trace_id,
	parent_trace_id,
	page_id,
	sign,
	token
	 FROM dwd_base_event_log_b 
	WHERE dt='$do_date' AND behavior_type in ('content_view','content_stop');"

echo "===开始清洗事件日期为 $do_date 的数据==="
$hive -e "$sql"
echo "===事件日期为 $do_date 的数据清洗完成==="

语句解释:

shell文件中定义一个变量,直接定义比如:jdbc_username=root,使用此参数:$jdbc_username

shell中前一天`date -d "-1 day" +%F`,当日`date?+%F`

shell action需要传参时,HUE上规定是使用$1,$2,$3这种方式,后面创建Schedule时会讲到。

shell中定义的hive的bin路径,是为了执行hive时调用hive程序:$hive -e 是在此目录下执行hive语句。

2.将sh文件放到hdfs上

/warehouse/dd/oozie/workspace/workspace-sqoop-hive2mysql-now/shell/sqoop-hive2mysql-now-shell.sh

3.创建workflow

?4.执行测试

?程序执行可在job中查看执行情况

?5.创建coordinate调度

from开始时间如果选择了之前的时间,任务创建执行后,会先执行多个job弥补选择的时间差。

比如:我们每时10分的任务,当前时间是12点15分,from选择了12点0分,执行这个coordinate时,会立即执行一个job workflow,是执行的12点10分的任务。所以这个from我们只需要创建时默认当时的时间即可。?

6.执行coord

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:46:40  更:2021-11-11 12:48:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:17:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码