Oozie的coordinator怎么配置

这篇文章主要介绍“Oozie的coordinator怎么配置”,在日常操作中,相信很多人在Oozie的coordinator怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oozie的coordinator怎么配置”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

息烽ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

coordinator是workflow的定时提交器,基于时间条件与数据生成触发(based on time and data triggers)。简单点说,coordinator按所定义的时间周期进行轮询,若数据生成条件满足,则触发workflow任务;否则,则等待数据生成或跳过(调度策略由设置的超时时间决定)。

coordinator-app

coordinator-app name="coord-demo" frequency="${coord:days(1)}" start="${start_time}" end="${end_time}"
timezone="Asia/Shanghai" xmlns="uri:oozie:coordinator:0.1"

文件头定义了coordinator任务的名称,执行频率(frequency),开始与起止时间(start、end)。${coord:days(1)}为coordinator内置的EL function (Expression Language),表示为执行周期为一天。frequency的时间单位为分钟,则${coord:days(1)}=1440,${coord:hours(3)}=180. 一般地,在job.properties定义如:start_time=2016-06-07T00:00Z,应以UTC时区为准。

Control information


    
    -1
    
    1
    
    ${execution_order}

datasets


    
    
      ${nameNode}/path/to/${YEAR}-${MONTH}-${DAY}/${HOUR}/
      
    

相关参数:

  • initial-instance,对应初始时间的数据目录,作为时间周期偏移的基准目录

  • uri-template,文件目录HDFS目录,${YEAR}、${MONTH}等为EL Time Constants,具体数值由 传入,也可通过job.properties传入自定义的参数。

  • done-flag,数据目录生成的文件标识,若未指定,则默认为 _SUCCESS 文件;若指定为空,则表示文件夹本身。

  • input-events

    
        
          ${coord:current(-1)}
        
    

    定义了数据触发条件,${coord:current(-1)}表示对于当前时间的偏移,其中偏移量=数值* dataset frequency。有些时候,我们要判断多个目录是否生成,比如,判断一天的24个小时目录,这时应这样写:

    
      ${coord:current(-24)}
      ${coord:current(-1)}
    

    action

    
        
          ${wf_app_path}
          
            
              dayTime
              ${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, 'DAY'), 'yyyy-MM-dd')}
            
          
        
    

    定义coordinator要触发的workflow,

  • app-path,workflow所在的HDFS目录;

  • property,定义传给workflow的参数

  • coordinator提供了一些用于时间计算的函数,比如:

  • coord:nominalTime(),返回coordinator的每一执行周期的当前时间;

  • coord:dateOffset(String baseDate, int instance, String timeUnit),计算偏移后的时间,newDate = baseDate + instance * timeUnit;

  • coord:formatTime(String ts, String format),定义格式化的时间,其中format应遵循Java's SimpleDateFormat。

  • 返回多个时间:

    ${coord:formatTime(coord:dateOffset(coord:dateOffset(coord:nominalTime(), -12, 'HOUR'), -6, 'DAY'), 'yyyy-MM-dd')},${coord:formatTime(coord:dateOffset(coord:dateOffset(coord:nominalTime(), -12, 'HOUR'), -5, 'DAY')

到此,关于“Oozie的coordinator怎么配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


本文标题:Oozie的coordinator怎么配置
当前网址:http://azwzsj.com/article/jodige.html