当有一个复杂的工作流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

       

Oozie-coordinator调度的更多相关文章

  1. 1.18-1.21 Oozie Coordinator调度

    一.时区问题 1.修改系统时区 ## [root@hadoop-senior hadoop-2.5.0-cdh5.3.6]# rm -rf /etc/localtime [root@hadoop-se ...

  2. Oozie与Coordinator调度讲解及系统时区配置与定时触发两种配置方式

    1:修改本地linux时区 查看时区 - 号代表西  + 号 代表东 北京时间是东八区 设置时区的配置文件所在位置 cd /usr/share/zoneinfo/ 选择以亚洲的上海 的时区为基址 删除 ...

  3. oozie coordinator 定时调度

      (本段内容摘自http://blog.sina.com.cn/s/blog_e699b42b0102xjqw.html  Oozie总结 行成于思的博客)      Oozie提出了Coordin ...

  4. Oozie coordinator 作业自定义的配置的一些方法

    Oozie的coordinator有啥用? The Oozie Coordinator system allows the user to define and execute recurrent a ...

  5. Apache Oozie Coordinator 作业自定义配置定时任务

    一,介绍 Oozie是Hadoop的工作流系统,如果使用Oozie来提交MapReduce作业(Oozie 不仅仅支持MapReduce作业,还支持其他类型的作业),可以借助Oozie Coordin ...

  6. Oozie Coordinator job 之定时任务

    使用 Coordinator job 可以执行定时任务和时间触发执行 需要注意的是 Oozie 默认使用的时区与中国时区不是一致的,需要进行一点修改 1.关于时区 a.修改 core-site.xml ...

  7. oozie中调度mapreduce

    mapreduce可以直接对hdfs进行清洗和计算,这里介绍oozie中如何调度使用. 操作步骤如下: 1. 写一个mapper和reduce类,并且打包成jar包 2. 在workflow中引用ma ...

  8. 在hue平台上使用oozie工作流调度

    在实习期间,公司使用的hue平台做的数仓,下面就简单介绍一下hue的一些使用的注意事项,主要是工作流的使用和调度 进入hue首页: Workflow是工作流,Schedule是调度工作流的,如设置工作 ...

  9. 工作流调度引擎---Oozie

    Oozie使用教程 一.   Oozie简介 Apache Oozie是用于Hadoop平台的一种工作流调度引擎. 作用 - 统一调度hadoop系统中常见的mr任务启动hdfs操作.shell调度. ...

  10. 1.1-1.4 hadoop调度框架和oozie概述

    一.hadoop调度框架 Linux Crontab Azkaban https://azkaban.github.io/ Oozie http://oozie.apache.org/ Zeus(阿里 ...

随机推荐

  1. Java并发容器——ConcurrentSkipListMap和ConcurrentHashMap

    一:ConcurrentSkipListMap TreeMap使用红黑树按照key的顺序(自然顺序.自定义顺序)来使得键值对有序存储,但是只能在单线程下安全使用:多线程下想要使键值对按照key的顺序来 ...

  2. Solidworks机构运动仿真

    使用Solidworks Motion插件可以对机构进行运动学/动力学仿真.机构约束添加完成后,可以在主动部件(关节)处添加马达进行驱动.运动可以是简单的匀速运动或者复杂的表达式.数据点形式的运动. ...

  3. Dom4j操作XML实战,解析和插入XML实例

    本例子是用XML来代替数据库的,XML的每个节点代替数据库一行数据. 直说过程: XML文件结构:定义了一个名为:User.xml的文件: <?xml version="1.0&quo ...

  4. JetBrains全系列在线激活中心pycharm

     题记:有能力还是建议购买正版授权! 01.pycharm下载 https://www.jetbrains.com/pycharm/download/ https://download.jetbrai ...

  5. JavaScript 错误处理, Throw、Try 和 Catch入门

    try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 错误一定会发生 当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误: 可能是 ...

  6. atime,mtime,ctime 的理解

    Linux之atime,mtime,ctime from:http://blog.sina.com.cn/s/blog_5980699f0100zkgz.html 首先可以使用stat 命令来查询文件 ...

  7. nginx端合并JS

    转载于:http://www.tuicool.com/articles/IjMNnq 配置文件: location /static/css/ { concat on; concat_max_files ...

  8. ubuntu(14.04) 网路管理

    网络五元素: MAC地址 IP地址 网络掩码 网关 DNS:将ip地址转换成域名 ping ifconfig route /etc/resolv.conf netstat ip nmap cat /e ...

  9. Swift 表达式

    前言 Swift 语言使用表达式来表示程序中的最小单位,通常一个表达式是由数字.字符.运算符.变量.常量.函数调用等可以求得值的有意义的排列组成的组合. 根据组合方式的不同,表达式可以分为基本表达式. ...

  10. windows开机后键盘失灵(非硬件原因)解决办法

    今天来了,开机时突然发现输入密码时,键盘不管用了,试了一下键盘没问题,插口也没问题,能进入安全模式,很奇怪,昨天好好的今天却不能用了,找人倒腾了大半天也没搞出来,后来用PE盘消掉了密码,总算进入了系统 ...