HUE WorkFlow Schedule 调用Hive参数传递,外部参数传递,时间参数传递

 

目录

WorkFlow传静态参数

Schedule 传动态参数

oozie常用的系统常量


  •  场景:HUE执行任务需要从外部传入参数,不能在脚本写死,比较麻烦

WorkFlow传静态参数

 

 执行的脚本代码如下 

CREATE EXTERNAL TABLE ${hivevar:database}.${hivevar:tableName}${pt_tab}(key string ,comments_count int)  
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (  "hbase.columns.mapping"=":key,fn:comments_count" )
TBLPROPERTIES("hbase.table.name" = "${hivevar:database}:${hivevar:tableName}${pt_tab}");

在hue中添加的参数

tableName=artcile_tableNamedatebase=ods_temp

脚本中调用方式为

${hivevar:tableName}${hivevar:ods_temp}

Schedule 传动态参数

在WorkFlow中添加的参数pt_tab是从Schedule传入的,

脚本中使用方式为

${pt_tab}

注意: pt_tab 参数命名时不要使用数字开头的变量,所有Schedule无法识别、引用,要以字母开头或者下划线开头

Schedule配置为

${coord:formatTime(coord:dateOffset(coord:nominalTime(), -7, 'DAY'), 'yyyyw')}

pt_tab传入调用时间的七天前所在的年周(如2019年第10周:201910)

 

问题:为什么不使用hive中设置参数

答:之前设置过下面代码配置,但是调用时无法当作表名来使用,只能当作条件来使用,比如(date='${zh.wk}')

set zh.wk= CONCAT(year(date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7)) ,weekofyear(date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7)));

问题:hivevar和hiveconf区别

答:hiveconf:hive相关配置,变量取值必须要使用hiveconf作为前缀参数,具体格式如下:      ${hiveconf:key}  

hivevar:用户自定义变量,取值可以不使用前缀hivevar,具体格式如下:

使用前缀:

       ${hivevar:key}

不使用前缀:

       ${key}
 

 

oozie常用的系统常量

常量表示形式含义说明
${coord:minutes(int n)}返回日期时间:从一开始,周期执行n分钟
${coord:hours(int n)}返回日期时间:从一开始,周期执行n * 60分钟
${coord:days(int n)}返回日期时间:从一开始,周期执行n * 24 * 60分钟
${coord:months(int n)}返回日期时间:从一开始,周期执行n * M * 24 * 60分钟(M表示一个月的天数)
${coord:endOfDays(int n)}返回日期时间:从当天的最晚时间(即下一天)开始,周期执行n * 24 * 60分钟
${coord:endOfMonths(1)}返回日期时间:从当月的最晚时间开始(即下个月初),周期执行n * 24 * 60分钟
${coord:current(int n)}返回日期时间:从一个Coordinator动作(Action)创建时开始计算,第n个dataset实例执行时间
${coord:dataIn(String name)}在输入事件(input-events)中,解析dataset实例包含的所有的URI
${coord:dataOut(String name)}在输出事件(output-events)中,解析dataset实例包含的所有的URI
${coord:offset(int n, String timeUnit)}表示时间偏移,如果一个Coordinator动作创建时间为T,n为正数表示向时刻T之后偏移,n为负数向向时刻T之前偏移,timeUnit表示时间单位(选项有MINUTE、HOUR、DAY、MONTH、YEAR)
${coord:hoursInDay(int n)}指定的第n天的小时数,n>0表示向后数第n天的小时数,n=0表示当天小时数,n<0表示向前数第n天的小时数
${coord:daysInMonth(int n)}指定的第n个月的天数,n>0表示向后数第n个月的天数,n=0表示当月的天数,n<0表示向前数第n个月的天数
${coord:tzOffset()}ataset对应的时区与Coordinator Job的时区所差的分钟数
${coord:latest(int n)}最近以来,当前可以用的第n个dataset实例
${coord:future(int n, int limit)}当前时间之后的dataset实例,n>=0,当n=0时表示立即可用的dataset实例,limit表示dataset实例的个数
${coord:nominalTime()}nominal时间等于Coordinator Job启动时间,加上多个Coordinator Job的频率所得到的日期时间。例如:start=”2009-01-01T24:00Z”,end=”2009-12-31T24:00Z”,frequency=”${coord:days(1)}”,frequency=”${coord:days(1)},则nominal时间为:2009-01-02T00:00Z、2009-01-03T00:00Z、2009-01-04T00:00Z、…、2010-01-01T00:00Z
${coord:actualTime()}Coordinator动作的实际创建时间。例如:start=”2011-05-01T24:00Z”,end=”2011-12-31T24:00Z”,frequency=”${coord:days(1)}”,则实际时间为:2011-05-01,2011-05-02,2011-05-03,…,2011-12-31
${coord:user()}启动当前Coordinator Job的用户名称
${coord:dateOffset(String baseDate, int instance, String timeUnit)}计算新的日期时间的公式:newDate = baseDate + instance * timeUnit,如:baseDate=’2009-01-01T00:00Z’,instance=’2′,timeUnit=’MONTH’,则计算得到的新的日期时间为’2009-03-01T00:00Z’。
${coord:formatTime(String timeStamp, String format)}格式化时间字符串,format指定模式

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

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

相关文章

函数调用过程简单分析

C/C函数调用过程分析 这里以一个简单的C语言代码为例&#xff0c;来分析函数调用过程 代码&#xff1a; 1 #include <stdio.h>2 3 int func(int param1 ,int param2,int param3)4 {5 int var1 param1;6 int var2 param2;7 int var3 param3;8 …

ninja: error: 'LIBSOUNDIO_LIB-NOTFOUND', needed by 'bin/k4aviewer', missing and no known rule to mak

sudo apt install libsoundio-dev cmake .. -GNinja ninja sudo apt install ninja-build

有向图的邻接表描述 c++

有向图的邻接表表示法 图的邻接表表示法类似于树的孩子链表表示法。对于图G中的每个顶点vi&#xff0c;该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表&#xff0c;这个单链表就称为顶点vi的邻接表(Adjacency List)。 1&#xff0e; 邻接表的结点结构 &#xff08;1&a…

Form表单中method=post/get'的区别

Form提供了两种数据传输的方式——get和post。虽然它们都是数据的提交方式&#xff0c;但是在实际传输时确有很大的不同&#xff0c;并且可能会对数据产生严重的影响。虽然为了方便的得到变量值&#xff0c;Web容器已经屏蔽了二者的一些差异&#xff0c;但是了解二者的差异在以…

HUE Schedule 定时调度 - 启动时间设置问题(执行次数过多,时区问题)

在启动Schedule 时需要设置开始时间&#xff0c;结束时间不用讨论&#xff0c;开始时间设置时尽量为当前时间 因为开始时间设置如果小于今天&#xff0c;比如设置为2019-01-01&#xff0c;定时器是每天1:29分启动&#xff0c;则会将日期之前的次数执行了&#xff0c;即执行开始…

AZURE kinect 深度相机配置ubuntu16.04

1.升级cmake // Download and extract cmake 3.14.5 mkdir ~/temp cd ~/temp wget https://cmake.org/files/v3.14/cmake-3.14.5.tar.gz tar -xzvf cmake-3.14.5.tar.gz cd cmake-3.14.5/ //Install extracted source ./bootstrap make -j4 sudo make install cmake --version…

递归算法的时间复杂度分析

在算法分析中&#xff0c;当一个算法中包含递归调用时&#xff0c;其时间复杂度的分析会转化为一个递归方程求解。实际上&#xff0c;这个问题是数学上求解渐近阶的问题&#xff0c;而递归方程的形式多种多样&#xff0c;其求解方法也是不一而足&#xff0c;比较常用的有以下四…

喜欢爱C/C++的人不要浮躁

1.把C当成一门新的语言学习&#xff08;和C没啥关系&#xff01;真的。2.看《Thinking In C》&#xff0c;不要看《C变成死相》&#xff1b;3.看《The C Programming Language》和《Inside The C Object Model》,不要因为他们很难而我们自己是初学者所以就不看&#xff1b;4.不…

Cloudera Manager agent无法启动,拒绝链接 Failed! trying again in 2 second(s): [Errno 111] Connection refuse

启动agent节点失败&#xff0c;提示拒绝连接&#xff0c;百度一下很多人说解决方式是用ps -ef | grep supervisord查看是否有进程&#xff0c;有的话 kill 掉&#xff08;使用kill -9 会自动拉起进程&#xff0c;使用kill&#xff09;&#xff0c;然后重启即可&#xff0c;kill…

POSIX标准

POSIX的诞生和Unix的发展是密不可分的&#xff0c;电气和电子工程师协会&#xff08;Institute of Electrical and Electronics Engineers&#xff0c;IEEE&#xff09;最初开发 POSIX 标准&#xff0c;是为了提高 UNIX 环境下应用程序的可移植性。Unix于70年代诞生于贝尔实验室…

论文翻译网站

https://tongtianta.site/

C/C++字符串输入方法比较(带回车不带回车输入)

1.scanf charstr[15]; scanf("%s",str); abc 123 1) 不读入空格和回车,从空格处结束 2) 输入字符串长度超过字符数组元素个数不报错 3) 当输入项为字符指针时&#xff0c;指针必须已指向确定的有足够空间的连续存储单元 4) 当为数组元素地址时…

Kafka(六)Kafka基本客户端命令操作

转载自&#xff1a;https://blog.51cto.com/littledevil/2147950 主题管理 创建主题 如果配置了auto.create.topics.enabletrue&#xff08;这也是默认值&#xff09;这样当生产者向一个没有创建的主题发送消息就会自动创建&#xff0c;其分区数量和副本数量也是有默认配置来…

linux平台C++开发基本知识

最近工作中&#xff0c;需要在linux上开发C程序。有了下面的问题。 1&#xff0c;linux平台C开发和win32 C开发有什么区别呢&#xff1f; 2&#xff0c;除了C语言&#xff0c;数据结构等必须的知识外&#xff0c;还需要些了解什么呢&#xff1f; 3&#xff0c;如何在linux平台开…

Impala 调用Hbase 报错 LeaseException

impala调用Hbase表数据操作时&#xff0c;提示 LeaseException 异常&#xff0c;主要原因是hbase数据过大&#xff0c;调用期间没有汇报心跳导致 WARNINGS: LeaseException: org.apache.hadoop.hbase.regionserver.LeaseException: lease -8355984789923245890 does not exist…

js和jsp所有页面跳转总结

Jsp页面跳转和js控制页面跳转的几种方法 Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet或者是JSP到另外的一个Servlet、JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了fo…

mitmproxy 中间人代理工具,抓包工具,linux抓包工具 mitmproxy 使用

mitmproxy是一个支持HTTP和HTTPS的抓包程序&#xff0c;类似Fiddler、Charles的功能&#xff0c;可以在linux以命令行形式的展示抓包信息 mitmdump&#xff1a;它是mitmproxy的命令行接口&#xff0c;利用它我们可以对接Python脚本&#xff0c;用Python实现监听后的处理。 mitm…

欧拉角转旋转矩阵

//c实现 cv::Mat eulerAnglesToRotationMatrix(cv::Vec3f& theta){// Calculate rotation about x axiscv::Mat R_x (cv::Mat_<double>(3, 3) <<1, 0, 0,0, cos(theta[0]), -sin(theta[0]),0, sin(theta[0]), cos(theta[0]));// Calculate rotation about y a…

C++常见面试题

1.在C 程序中调用被C 编译器编译后的函数&#xff0c;为什么要加extern “C”&#xff1f; 答&#xff1a;首先&#xff0c;extern是C/C语言中表明函数和全局变量作用范围的关键字&#xff0c;该关键字告诉编译器&#xff0c;其声明的函数和变量可以在本模块或其它模块中使用。…

Ajax学习总结+案例

一、AJAX简介 1、Asynchronous JavaScript And XML指异步 JavaScript 及 XML 2、老技术新用法。是基于JavaScript、XML、HTML、CSS新用法 二、同步和异步&#xff08;理解&#xff09; 三、第一个异步请求案例&#xff08;熟悉编码步骤&#xff09; 四、XmlHttpRequest&…