CDH6.3.0 HUE 整合 Oozie调度

由于oozie的xml配置执行各种任务调度是在太过于繁琐,所有一般都使用hue整合oozie来使用

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue

通过hue对oozie进行配置,所以首先保证hue中 time_zone为Asia/Shanghai

cloudera oozie默认时区是UTC,缺点就是在开发oozie任务时必须在期望执行的时间上减去8小时,因此很不推荐这样做。
因此需要修改时区的配置操作:oozie-site.xml 的 Oozie Server 高级配置代码段(安全阀)
<property> 
    <name>oozie.processing.timezone</name>
    <value>GMT+0800</value>
</property>

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_03

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_04

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_05

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_06

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_07

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_08

例子为每天定时添加指定分区,分区为动态传参传入,和脚本类似,参数取值用${}包围

  1.     use 数据库名;

  2.     CREATE TABLE if NOT EXISTS dw_serv_checi_query_day (

  3.     user_id           string,

  4.     railway_no        string,

  5.     start_station     string 

  6.     ) PARTITIONED BY (dt STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;

  7.     ALTER TABLE dw_serv_checi_query_day  ADD PARTITION (dt = ${partdt});

  8.     insert into dw_serv_checi_query_day partition(dt='20190101') values('1','2','3');


保存为addpart.sql,上传hdfs

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_09

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_10

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_11

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_12

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_13

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_14

选择刚才创建的workflows,选择定时时间,可以选择每日,每周,每月等等,选择任务有效期,最后要给出参数的值,
这里的值是代表前一天的日期,oozie有一些内置的常量。保存提交,OK,定时任务完成了。

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_15

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_16

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_17

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_18

  • 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指定模式

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_19

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_20

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_21

beeline -u jdbc:hive2://node1:10000 -n root
use 数据库名;
select * from dw_serv_checi_query_day;

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_22

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_23

此处因为使用的默认数据库default,因此创建的表直接就存储在/user/hive/warehouse路径下

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_24

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_25

连续多个sql脚本按顺序定时执行

CDH6.3.0 HUE 整合 Oozie调度_cdh oozie hue_26

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI周红伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值