Oozie-coordinator调度

当有一个复杂的工作流job,希望每天定时执行,使用crontab方式调用需要编写大量的脚本,还要通过大量的判断来控制每个工作流job的执行顺序问题。Oozie中的Coordinator可以让每个工作流workflow当做一个动作来运行,这样就可以将多个job组织起来,并制定触发时间和频率。它的调度方式有两种:一种是基于时间调度;还有一种是基于数据可用性调度(判断数据是否存在和是否符合标准)。

  1. 如果要设置基于时间的调度,需要先配置时区,因为oozie默认使用的是UTC时区,服务器默认使用的是CST,我们把他们修改为GMT +0800(当然也可以是其他时区)
    查看系统当前时区:

    23.png

    如果输出的时区不是+0800,需要进行修改
    $ rm -rf /etc/localtime
    $ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    修改oozie时区,在oozie-sitexml添加参数
     <property>
         <name>oozie.processing.timezone</name> <value>GMT+0800</value> </property>
    修改oozie/-server/webapps/oozie/oozie-console.js中的时区设置,不然会影响web界面的时间,修改完成后重启生效
    function getTimeZone() {
     Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
     return Ext.state.Manager.get("TimezoneId","GMT+0800"); }
  2. 拷贝模板中的coordinator案例
    $ cp -r examples/apps/cron-schedule/ my-apps/
  3. 修改job.properties
    nameNode=hdfs://bigdata-00:8020
    jobTracker=bigdata-00:8032
    queueName=default
    examplesRoot=user/wulei/my-apps/cron-schedule
    # 定义coordinate路径 oozie.coord.application.path=${nameNode}/${examplesRoot} start=2016-11-13T12:30+0800 end=2016-11-13T13:30+0800 # 定义workflow路劲 workflowAppUri=${nameNode}/${examplesRoot}
  4. 修改coorndinate.xml,让这个任务从开始时间到结束时间内每分钟执行一次
    <coordinator-app name="cron-coord" frequency="${coord:minutes(1)}" start="${start}" end="${end}" timezone="GMT+0800" xmlns="uri:oozie:coordinator:0.2"> <action> <workflow> <app-path>${workflowAppUri}</app-path> <configuration> <property> <name>jobTracker</name> <value>${jobTracker}</value> </property> <property> <name>nameNode</name> <value>${nameNode}</value> </property> <property> <name>queueName</name> <value>${queueName}</value> </property> </configuration> </workflow> </action> </coordinator-app>
  5. oozie的默认配置中,至少为每5分钟执行一次,所以需要修改默认配置

    24.png
  6. 上传至hdfs后执行

    25.png
  7. 查看执行结果

    27.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值