python工作流引擎_工作流引擎Oozie(二):coordinator

导读

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

未标题-1-12.jpg

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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 从零开始讲解大数据调度系统构成,集成大数据计算任务构建大数据工作流,基于Oozie构建实现企业级自动化任务开发 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为简,讲解通俗易懂。 3,结合工作实践及分析应用,培养解决实际问题的能力。 4,每一块知识点, 都有配套案例, 学习不再迷茫。 适用人群 1、对大数据感兴趣的在校生及应届毕业生。 2、对目前职业有进一步提升要求,希望从事大数据行业高薪工作的在职人员。 3、对大数据行业感兴趣的相关人员。 课程内容 第一章:工作流任务调度系统 1.大数据调度系统概论 2.企业级工作流 3.工作流依赖调度 4.工作流定时调度 第章:企业级任务流调度系统Oozie 1.Oozie的应用场景 2.Oozie的功能及模块 3.Oozie的与MR的关系 4.Oozie的工作流实现原理 5.Oozie中的特殊概念Action 6.Hadoop的集成配置 7.Oozie的部署配置 第三章:Oozie调度开发实战 1.Shell脚本工作流调度开发实战 2.Hive Job工作流调度开发实战 3.MapReduce工作流调度开发实战 4.复杂工作流调度实战 5.分支与合并逻辑控制组件 第四章:Oozie定时依赖调度 1.基于时间的任务流调度 2.Coordinator时区配置 3.Coordinator任务实战开发 第五章:Oozie可视化开发 1.集成Hue配置 2.基于Hue构建Oozie工作流开发实战 第六章:Oozie监控任务管理 1.Oozie任务的查看 2.Oozie任务的提交 3.Oozie任务的关闭

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值