Oozie Coordinator job 之定时任务
使用 Coordinator job 可以执行定时任务和时间触发执行
需要注意的是 Oozie 默认使用的时区与中国时区不是一致的,需要进行一点修改
1.关于时区
a.修改 core-site.xml 文件(运行需要)需要清除编译文件,重启 tomcat 服务(不能是UTC+0800)
<property>
<name>oozie.processing.timezone</name>
<value>GMT+0800</value>
</property>
b.修改 $OOZIE_HOME/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.拷贝 example 文件 cron-schedule
3.编辑 job.properties 文件(注意时间格式)
nameNode=hdfs://cen-ubuntu.cenzhongman.com:8020
jobTracker=localhost:8032
queueName=default
oozieAppsRoot=oozie-apps
oozie.coord.application.path=${nameNode}/user/cen/${oozieAppsRoot}/cron-schedule
start=2017-07-30T14:40+0800
end=2017-07-30T14:59+0800
workflowAppUri=${nameNode}/user/cen/${oozieAppsRoot}/cron-schedule
4.编辑 workflow.xml 文件(内容酌情添加,这里什么也不做)(修改了版本号)
<workflow-app xmlns="uri:oozie:workflow:0.5" name="no-op-wf">
<start to="end"/>
<end name="end"/>
</workflow-app>
5.编辑 coordinator.xml 文件(支持两种定时任务方式,下文详细说明)
<coordinator-app name="cron-coord" frequency="0/1 * * * *" start="${start}" end="${end}" timezone="GMT+0800"
xmlns="uri:oozie:coordinator:0.4">
<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>
注意事项
- 修改时区写法
- 修改版本号
- coordinator.xml 文件在本地文件系统中读取,HDFS 中无需修改不影响
6.上传文件至 HDFS 文件系统
7.执行任务
export OOZIE_URL=http://cen-ubuntu:11000/oozie/
bin/oozie job --config oozie-apps/cron-schedule/job.properties -run
关于定时方式
方式一:官方定义方式
| EL Constant | Value | Example |
|---|---|---|
| ${coord:minutes(int n)} | n | ${coord:minutes(45)} --> 45 |
| ${coord:hours(int n)} | n * 60 | ${coord:hours(3)} --> 180 |
| ${coord:days(int n)} | variable | ${coord:days(2)} --> minutes in 2 full days from the current date |
| ${coord:months(int n)} | variable | ${coord:months(1)} --> minutes in a 1 full month from the current date |
| ${cron syntax} | variable | ${0,10 15 * * 2-6} --> a job that runs every weekday at 3:00pm and 3:10pm UTC time |
方式二:corntab方式
| Field name | Allowed Values | Allowed Special Characters |
|---|---|---|
| Minutes | 0-59 | , - * / |
| Hours | 0-23 | , - * / |
| Day-of-month | 1-31 | , - * ? / L W |
| Month | 1-12 or JAN-DEC | , - * / |
| Day-of-Week | 1-7 or SUN-SAT | , - * ? / L # |
Example
| Cron Expression | Meaning |
|---|---|
| 10 9 * * * | Runs everyday at 9:10am |
| 10,30,45 9 * * * | Runs everyday at 9:10am, 9:30am, and 9:45am |
| 0 * 30 JAN 2-6 | Runs at 0 minute of every hour on weekdays and 30th of January |
| 0/20 9-17 * * 2-5 | Runs every Mon, Tue, Wed, and Thurs at minutes 0, 20, 40 from 9am to 5pm |
| 1 2 L-3 * * | Runs every third-to-last day of month at 2:01am |
| 1 2 6W 3 ? | Runs on the nearest weekday to March, 6th every year at 2:01am |
| 1 2 * 3 3#2 | Runs every second Tuesday of March at 2:01am every year |
| 0 10,13 * * MON-FRI | Runs every weekday at 10am and 1pm |
注1:开启了检查频率,导致5分钟以内的频率运行失败
错误提示:Error: E1003 : E1003: Invalid coordinator application attributes, Coordinator job with frequency [2] minutes is faster than allowed maximum of 5 minutes (oozie.service.coord.check.maximum.frequency is set to true)
错误原因:开启了检查频率,导致5分钟以内的频率运行失败
解决:关闭频率检查功能 配置oozie-site.xml文件
<property>
<name>oozie.service.coord.check.maximum.frequency</name>
<value>false</value>
</property>
Oozie Coordinator job 之定时任务的更多相关文章
- Apache Oozie Coordinator 作业自定义配置定时任务
一,介绍 Oozie是Hadoop的工作流系统,如果使用Oozie来提交MapReduce作业(Oozie 不仅仅支持MapReduce作业,还支持其他类型的作业),可以借助Oozie Coordin ...
- 使用Oozie中workflow的定时任务重跑hive数仓表的历史分期调度
在数仓和BI系统的开发和使用过程中会经常出现需要重跑数仓中某些或一段时间内的分区数据,原因可能是:1.数据统计和计算逻辑/口径调整,2.发现之前的埋点数据收集出现错误或者埋点出现错误,3.业务数据库出 ...
- 2-10 就业课(2.0)-oozie:8、定时任务的执行
4.5.oozie的任务调度,定时任务执行 在oozie当中,主要是通过Coordinator 来实现任务的定时调度,与我们的workflow类似的,Coordinator 这个模块也是主要通过xml ...
- Oozie coordinator 作业自定义的配置的一些方法
Oozie的coordinator有啥用? The Oozie Coordinator system allows the user to define and execute recurrent a ...
- oozie coordinator 定时调度
(本段内容摘自http://blog.sina.com.cn/s/blog_e699b42b0102xjqw.html Oozie总结 行成于思的博客) Oozie提出了Coordin ...
- 1.18-1.21 Oozie Coordinator调度
一.时区问题 1.修改系统时区 ## [root@hadoop-senior hadoop-2.5.0-cdh5.3.6]# rm -rf /etc/localtime [root@hadoop-se ...
- Hue上的Oozie构建工作流和定时任务步骤
Oozie是什么? Oozie是一种Java Web应用程序,它运行在Java servlet容器--即Tomcat--中,并使用数据库来存储以下内容: 工作流定义 当前运行的工作流实例,包括实例的状 ...
- 【Hadoop离线基础总结】oozie定时任务设置
目录 简介 概述 oozie定时任务设置 1.拷贝定时任务的调度模板 拷贝hello.sh脚本 3.修改配置文件 4.上传到hdfs对应路径 5.运行定时任务 简介 概述 在oozie当中,主要是通过 ...
- 工作流引擎Oozie(二):coordinator
1. 简介 coordinator是workflow的定时提交器,基于时间条件与数据生成触发(based on time and data triggers).简单点说,coordinator按所定义 ...
随机推荐
- The content of element type "bean" must match "(description?,(constructor-arg|property|lookup-method|replaced-method)*)".
开发中,总有一下奇奇怪怪的问题 完整的错误就不贴了,异常提示: hibernate.xml] is invalid; nested exception is org.xml.sax.SAXParseE ...
- June 14th 2017 Week 24th Wednesday
Love looks not with the eyes, but with the mind. 爱,不在眼里,而在心中. Staring in her eyes and you will find ...
- JVM 虚拟机内存深入探究
[<深入理解java虚拟机>-整理笔记] by lijun JVM虚拟机内存逻辑模型: 方法区(全局变量 静态数据 常量等) 线程共享 堆栈区(对象实例 数组数据 new generat ...
- 2018.12.16 struts.xml 结果集方式分析 && 源码查看
1.结果集 转发 重定向 转发Action 重定向Action <?xml version="1.0" encoding="UTF-8"?> < ...
- 2018.10.6 Hibernate配置文件详解-------ORM元数据配置 &&& hibernate主配置文件
ORM既然是实体与关系数据库的映射,那就需要建立实体和关系数据库之间的基础数据,也可以称为元数据.简单的说就是表示类与表.列与属性(get.set方法)等等之间对应关系的数据. Customer.hb ...
- 用js写三级联动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 123. Best Time to Buy and Sell Stock III ——LeetCode
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- kinect v2
http://www.tuicool.com/articles/NbmyyeU https://channel9.msdn.com/Blogs/raw-tech/Making-your-body-th ...
- spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500:no convertter for return value of type
问题描述 spring Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson spring boot 新增配置解决后台返回 json 到前台中文乱码之后,出现返回json ...
- linux命令进阶及和windows进行文件传输的所有方式
1.图例 ------>原图出处 2. 结构图 根目录说明 3.linux相关命令 cd(change directory切换目录): cd /. 进入根目录 cd .. 返回上一次目录 cd ...