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

时间: 2024-12-27 07:39:05

Oozie-coordinator调度的相关文章

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

1:修改本地linux时区 查看时区 - 号代表西  + 号 代表东 北京时间是东八区 设置时区的配置文件所在位置 1 cd /usr/share/zoneinfo/ 选择以亚洲的上海 的时区为基址 删除本地配置文件 1 rm -r /etc/localtime 创建一个硬连接 1 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 时区变成东八区了 设置时间 2:设置oozie的时区   在oozie-site.xml修改  oozi

oozie coordinator 定时调度

  coordinator application: coordinator application是在满足一组条件时触发动作(通常是工作流作业)的程序.条件可以是时间频率.新数据集实例或其他外部事件.  coordinator application的类型:同步:它的协调器动作是在指定的时间间隔创建的,通常是参数化的.  coordinator job: 要创建一个coordinator job,必须向协调器引擎提供解决所有coordinator application参数的作业配置. coo

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

一,介绍 Oozie是Hadoop的工作流系统,如果使用Oozie来提交MapReduce作业(Oozie 不仅仅支持MapReduce作业,还支持其他类型的作业),可以借助Oozie Coordinator 作业来实现定时运行. 对于Oozie的作业而言,在它提交给Hadoop之前首先需要部署好.即,将配置文件(定时作业是coordinator.xml,workflow作业则是workflow.xml).可执行的jar文件.还有待处理的输入数据上传到HDFS上. 一个典型的workflow作业

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

Oozie的coordinator有啥用? The Oozie Coordinator system allows the user to define and execute recurrent and interdependent workflow jobs (data application pipelines). 说白了就是可以把各个 workflow作业组织起来.比如,A作业执行完成之后,会有输出,该输出触发B作业的执行.那么 A B 这两个workflow作业就可以通过一个coord

oozie bundle 调用多个coordinator

bundle job可以绑定多个coordinator. 语法: <bundle-app name=[NAME] xmlns='uri:oozie:bundle:0.1'> <controls> <kick-off-time>[DATETIME]</kick-off-time> #运行时间 </controls> <coordinator name=[NAME] > <app-path>[COORD-APPLICATION

工作流调度引擎---Oozie

Oozie使用教程 一.   Oozie简介 Apache Oozie是用于Hadoop平台的一种工作流调度引擎. 作用 - 统一调度hadoop系统中常见的mr任务启动hdfs操作.shell调度.hive操作等. - 使得复杂的依赖关系时间触发事件触发使用xml语言进行表达开发效率提高. - 一组任务使用一个DAG来表示,使用图形表达流程逻辑更加清晰. - 支持很多种任务调度,能完成大部分hadoop任务处理. - 程序定义支持EL常量和函数,表达更加丰富. 架构 访问 - 通过浏览器访问

mapreduce 程序实例:hotlink统计程序及其oozie 调度

mapreduce程序 : 描述: 提取出二进制文件里的短链,并统计排序(由大到小排序) 思路: HotlinkCount: 1 /* 2 * Copyright (c) EEFUNG 2014 All Rights Reserved 3 * 4 * 统计每个连接出现的频率 5 * 6 */ 7 package com.eefung.hstore.mr.job.hotLink; 8 9 import cn.antvision.eagleattack.model.Status; 10 import

作业流 oozie调度框架的配置与使用(一)

一: 常见的调度框架 一: oozie 概述与功能 二: oozie 安装与配置 一: 常见的作用调度框架 1.1 linux 下面的计划任务 在工作量比较下的情况下 使用linux 下的crond 使用定制计划任务 * * * * * 后面接调度 job 的命令 分 时 日 月 周 hive -e " " 执行一个sql 命令 hive -f " " 执行一个sql 脚本 结合 crond 使用 1.2 常见的协作调度框架: 1.2.1 Azkaban 框架 参考

作业流调度框架 oozie 使用 (二)

oozie 任务调度处理 标签(空格分隔): 协作框架 一:oozie example 运行任务调度案例 二:oozie 运行自定的mapreduce 的jar 包 三:oozie 调度shell 脚本 四:oozie 的coordinator 周期性调度当前任务 一: 运行oozie example 案例 1.1 解压exmaple包 解压example 包 tar -zxvf oozie-examples.tar.gz cd /home/hadoop/yangyang/oozie/examp

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

一.hadoop调度框架 Linux Crontab Azkaban https://azkaban.github.io/ Oozie http://oozie.apache.org/ Zeus(阿里的) https://github.com/michael8335/zeus2 二.oozie架构 1.oozie 一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对Hadoop MapReduce和Pig Jobs的任务调度与协调. Oozie需要部署到Jav