美文网首页
在CDH中oozie执行某个任务修改时区和cron表达式的配置使

在CDH中oozie执行某个任务修改时区和cron表达式的配置使

作者: 来一杯加多宝不加冰 | 来源:发表于2021-10-20 12:00 被阅读0次

时区

时区概念大家应该知道,地球上按照经纬度将地球划分为二十四个时区(东、西各12个时区),每两个相邻的时区间时间上相差1小时。标准时间概念UTC是世界标准时间,指的是零时区(英国格林尼治天文台旧址)里的时间。中国时区中国所在的时区为东八区,所以中国的时间应该是UTC时间加上8个小时,即常见的UTC+8时间。oozie所用时区oozie规定只使用UTC时间,也就是说,我们在做定时任务调度的时候,所使用的时间是标准时间而不是北京时间,所以假如我们要在2014年6月19号上午9点开始我们的定时任务,那我们的开始时间就要设定为2014年6月19号凌晨1点

cloudera oozie默认时区是UTC,在开发oozie任务时必须在期望执行的时间上减去8小时,很不习惯。记录下修改时区的配置操作。

1. cloudera oozie配置—>Oozie Server Default Group -->高级-->oozie-site.xml 的 Oozie Server 高级配置代码段(安全阀) 添加<property>** <name>oozie.processing.timezone</name>**** <value>GMT+0800</value>**</property> 

2. oozie ui 中配置

3.任务开发过程中,有时间参数的注意格式,如:start_date=2016-02-15T08:28+0800若是coordinator应用,需注意coordinator.xml文件timezone属性值如下timezone="Asia/Shanghai"

oozie循环执行某个任务

coordinator.xml

#frequency执行频率 ${coord:minutes(5)}为coordinator内置的EL function (Expression Language)

EL常量

常量表示形式 含义说明

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

 oozie job -config /root/app/job.properties -run  启动oozie 执行具体的配置文件

oozie cron表达式二

注意在frequency上使用${coord:days(1)} 这样的表达式要加美元符。

使用cron 表达式不要加美元符


相关文章

  • 在CDH中oozie执行某个任务修改时区和cron表达式的配置使

    时区 时区概念大家应该知道,地球上按照经纬度将地球划分为二十四个时区(东、西各12个时区),每两个相邻的时区间时间...

  • springboot使用定时器

    使用定时器 开启定时任务功能 配置定时任务 任务执行规则 @Scheduled注解: cron:指定cron表达式...

  • CentOS 8系统更改时钟时区

    对于许多与系统相关的任务和进程,使用正确的时区是必不可少的。例如,cron守护进程使用系统的时区执行cron作业,...

  • Linux系统如何更改时间时区

    对于许多与系统相关的任务和进程,使用正确的时区是必不可少的。例如,cron守护进程使用系统的时区执行cron作业,...

  • Cron 表达式

    cron表达式是什么 定时任务中,我们在方法上使用@Scheduled注解来设置任务的执行时间的一种属性配置方法 ...

  • DatistEQ之CRON编辑器

    Cron表达式,适用于周期性执行、日常维护、在某时刻需要完成的单次任务等场景。 Cron表达式介绍 Cron表达式...

  • cron表达式小白入门教程cron的介绍与使用

    cron表达式即计划任务,约定任务在特定的时间执行 cron表达式有7位和5位之分,不同位数之间以空格分隔 7位:...

  • 20.Linux中的计划任务

    Linux中的计划任务At单次执行计划任务cron 计划任务的使用计划任务:在某个时段自动执行某个任务。 Linu...

  • SpringTask(Spring定时任务注解方式)

    1.Spring配置文件 2.任务类 3.cron表达式说明 cron表达式通常用于配置计划任务的触发时间。一个c...

  • cron 表达式的使用

    定时任务中 cron 表达式的使用 在线生成 cron 表达式http://cron.qqe2.com/

网友评论

      本文标题:在CDH中oozie执行某个任务修改时区和cron表达式的配置使

      本文链接:https://www.haomeiwen.com/subject/uljfaltx.html