Oozie-coordinator调度
当有一个复杂的工作流job,希望每天定时执行,使用crontab方式调用需要编写大量的脚本,还要通过大量的判断来控制每个工作流job的执行顺序问题。Oozie中的Coordinator可以让每个工作流workflow当做一个动作来运行,这样就可以将多个job组织起来,并制定触发时间和频率。它的调度方式有两种:一种是基于时间调度;还有一种是基于数据可用性调度(判断数据是否存在和是否符合标准)。
- 如果要设置基于时间的调度,需要先配置时区,因为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");
} - 拷贝模板中的coordinator案例
$ cp -r examples/apps/cron-schedule/ my-apps/ - 修改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} - 修改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> - oozie的默认配置中,至少为每5分钟执行一次,所以需要修改默认配置
24.png - 上传至hdfs后执行
25.png - 查看执行结果
27.png
Oozie-coordinator调度的更多相关文章
- 1.18-1.21 Oozie Coordinator调度
一.时区问题 1.修改系统时区 ## [root@hadoop-senior hadoop-2.5.0-cdh5.3.6]# rm -rf /etc/localtime [root@hadoop-se ...
- Oozie与Coordinator调度讲解及系统时区配置与定时触发两种配置方式
1:修改本地linux时区 查看时区 - 号代表西 + 号 代表东 北京时间是东八区 设置时区的配置文件所在位置 cd /usr/share/zoneinfo/ 选择以亚洲的上海 的时区为基址 删除 ...
- oozie coordinator 定时调度
(本段内容摘自http://blog.sina.com.cn/s/blog_e699b42b0102xjqw.html Oozie总结 行成于思的博客) Oozie提出了Coordin ...
- Oozie coordinator 作业自定义的配置的一些方法
Oozie的coordinator有啥用? The Oozie Coordinator system allows the user to define and execute recurrent a ...
- Apache Oozie Coordinator 作业自定义配置定时任务
一,介绍 Oozie是Hadoop的工作流系统,如果使用Oozie来提交MapReduce作业(Oozie 不仅仅支持MapReduce作业,还支持其他类型的作业),可以借助Oozie Coordin ...
- Oozie Coordinator job 之定时任务
使用 Coordinator job 可以执行定时任务和时间触发执行 需要注意的是 Oozie 默认使用的时区与中国时区不是一致的,需要进行一点修改 1.关于时区 a.修改 core-site.xml ...
- oozie中调度mapreduce
mapreduce可以直接对hdfs进行清洗和计算,这里介绍oozie中如何调度使用. 操作步骤如下: 1. 写一个mapper和reduce类,并且打包成jar包 2. 在workflow中引用ma ...
- 在hue平台上使用oozie工作流调度
在实习期间,公司使用的hue平台做的数仓,下面就简单介绍一下hue的一些使用的注意事项,主要是工作流的使用和调度 进入hue首页: Workflow是工作流,Schedule是调度工作流的,如设置工作 ...
- 工作流调度引擎---Oozie
Oozie使用教程 一. Oozie简介 Apache Oozie是用于Hadoop平台的一种工作流调度引擎. 作用 - 统一调度hadoop系统中常见的mr任务启动hdfs操作.shell调度. ...
- 1.1-1.4 hadoop调度框架和oozie概述
一.hadoop调度框架 Linux Crontab Azkaban https://azkaban.github.io/ Oozie http://oozie.apache.org/ Zeus(阿里 ...
随机推荐
- Grunt、Gulp和Webpack对比
1.Grunt处理Sass转换成CSS过程 2.Gulp处理Sass转换成CSS过程 3.Webpack执行原理 4.区别 (1)grunt和gulp都类似于webapck的中的scripts,属于任 ...
- Java对象在虚拟机中的创建、内存分布、访问定位以及死亡判定
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6535156.html 一:虚拟机中对象的创建 1:虚拟机遇到new指令时,在常量池检索是否有对应的符号引用, ...
- Objecttive-C各种问题
1.invalid argument type 'void' to unary expression @try{ if (![mJQFMDB open]) { NSLog(@"Could n ...
- 〖Android〗联想K860 logcat CM11.0出错信息及解决
错误1: D/gpsd ( ): main() D/gpsd ( ): argv[] = '/system/bin/glgps' D/gpsd ( ): argv[] = '-c' D/gpsd ( ...
- V-rep学习笔记:碰撞检测与距离计算
V-REP可以在几何组件中快速判断各种干扰与碰撞,以及计算多个组件间的最小距离. 碰撞检测 V-REP可以检测两个碰撞体实体(Collidable objects are objects that c ...
- Ubuntu16.04 安装使用KiCad
KiCad是一个带模拟器的电路设计软件, 官网 http://kicad-pcb.org/, 当前版本是4.0.7 安装 参考http://kicad-pcb.org/download/ubuntu/ ...
- 基于RESTful API 怎么设计用户权限控制?
前言 有人说,每个人都是平等的:也有人说,人生来就是不平等的:在人类社会中,并没有绝对的公平,一件事,并不是所有人都能去做:一样物,并不是所有人都能够拥有.每个人都有自己的角色,每种角色都有对某种资源 ...
- boost asio异步读写网络聊天程序client 实例具体解释
boost官方文档中聊天程序实例解说 数据包格式chat_message.hpp <pre name="code" class="cpp">< ...
- ios中图层的ancorPoint
@interface MJViewController () { CALayer *_layer; } @end @implementation MJViewController - (void)vi ...
- leetcode74:二维矩阵搜索问题
使用递归的方式解决,对于matrix,在左上角x,y,右下角xx,yy组成的区域内搜索target. mx=x和xx的中点,my=y和yy的中点 判断matrix[mx][my],如果它大于targe ...