oozie工作流相关入门整理
<workflow-app xmlns="uri:oozie:workflow:0.4" name="${sys_name}-MonitorPlus-Task-${task_id}">
<start to=“check-xxx-succ-flag"/> <decision name=“check-xxx-succ-flag">
<switch>
<case to="check-mr-succ-flag">${fs:exists(concat(concat("/xxx/output/xxxList/",
task_id),"/_SUCCESS"))}</case>
<default to=“do-xxx"/>
</switch>
</decision> <decision name="check-mr-succ-flag">
<switch>
<case to="end">${fs:exists(concat(concat(“/xxx/output/", task_id),"/_SUCCESS"))}</case>
<default to="do-mr"/>
</switch>
</decision> <action name=“do-xxx" retry-max="3" retry-interval="10">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${namenode}</name-node>
<configuration>
<property>
<name>mapreduce.job.queuename</name>
<value>${queueName}</value>
</property>
</configuration>
<main-class>com.xxx.Main</main-class>
...
/xxx/oozie/workflow.xml
/xxx/oozie/lib
/xxx/oozie/lib/mr-1.7-SNAPSHOT-package.jar
/xxx/oozie/lib/xxx.mr-1.7-SNAPSHOT-package.jar
namenode=hdfs://ns1
jobTracker=xxx.cn:8032
oozie_url=http://xxx.cn:11000/oozie
oozie.wf.application.path=/xxx/oozie/workflow.xml
oozie job -oozie ${oozie_url} -config ${job_cfg} -run
<dependency>
<groupId>org.apache.oozie</groupId>
<artifactId>oozie-client</artifactId>
<version>4.1.0</version>
</dependency>
public class WorkflowClient { public static final String OOZIE_URL = "http://xxx.cn:11000/oozie"; private OozieClient oozieClient = new OozieClient(OOZIE_URL); public WorkflowClient() { } /**
* @param workflowDefinition
* @param workflowParameters
* @return - jobId
* @throws org.apache.oozie.client.OozieClientException
*/
public String startJob(Properties properties)
throws OozieClientException {
// create a workflow job configuration and set the workflow application path
Properties configuration = oozieClient.createConfiguration(); Enumeration<?> enumeration = properties.propertyNames();
while (enumeration.hasMoreElements()) {
Object element = enumeration.nextElement();
configuration.setProperty(element.toString(), properties.getProperty(element.toString()).toString());
} return oozieClient.run(configuration);
} public static void main(String[] args) throws OozieClientException, InterruptedException, IOException {
String jobPropertyFile = args[0]; // Create client
WorkflowClient client = new WorkflowClient();
// Create parameters
Properties properties = new Properties();
properties.load(new FileInputStream(new File(jobPropertyFile))); // Start Oozing
String jobId = client.startJob(properties);
SysOutLogger.info("jobId: " + jobId);
WorkflowJob jobInfo = client.oozieClient.getJobInfo(jobId); SysOutLogger.info("job url: " + jobInfo.getConsoleUrl()); while (true) {
Thread.sleep(1000L);
WorkflowJob.Status status = client.oozieClient.getJobInfo(jobId).getStatus();
if (status == WorkflowJob.Status.SUCCEEDED || status == WorkflowJob.Status.FAILED
|| status == WorkflowJob.Status.KILLED) {
SysOutLogger.info("Job finish with status: " + status);
break;
} else {
SysOutLogger.info("job running: " + jobInfo.getStatus());
}
} }
}
[INFO] 2015-04-16 11:02:18 : jobId: 0000002-150415180413953-oozie-supe-W
[INFO] 2015-04-16 11:02:18 : job url: http://xxx.cn:11000/oozie?job=0000002-150415180413953-oozie-supe-W
[INFO] 2015-04-16 11:02:18 : job running: RUNNING
[INFO] 2015-04-16 11:02:19 : Job finish with status: SUCCEEDED
oozie工作流相关入门整理的更多相关文章
- 高可用Hadoop平台-Oozie工作流之Hadoop调度
1.概述 在<高可用Hadoop平台-Oozie工作流>一篇中,给大家分享了如何去单一的集成Oozie这样一个插件.今天为大家介绍如何去使用Oozie创建相关工作流运行与Hadoop上,已 ...
- Selenium自动化测试框架入门整理
关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...
- Oozie工作流属性配置的方式与策略
本文原文出处: http://blog.csdn.net/bluishglc/article/details/46049817 Oozie工作流属性配置的三种方式 Oozie有三种方法可以给工作流提供 ...
- Activity工作流(2)-入门安装运行第一个例子
转: Activity工作流(2)-入门安装运行第一个例子 置顶 2017年05月24日 15:58:50 li_ch_ch 阅读数:24432 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- BAT 前端开发面经 —— 吐血总结 前端相关片段整理——持续更新 前端基础精简总结 Web Storage You don't know js
BAT 前端开发面经 —— 吐血总结 目录 1. Tencent 2. 阿里 3. 百度 更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘, ...
- 转:基于IOS上MDM技术相关资料整理及汇总
一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企业宝贵的资产,安全问题更是重中之重,在移动互联网时代,员工个人的设备接入 ...
- latch相关视图整理
latch相关视图整理(原创) V$LATCH V$LATCH视图在选取X$KSLLT记录时,进行了Group By及SUM运算,从而得出了一个汇总信息,保存了自实例启动后各类栓锁的统计信息.常用于当 ...
- EasyUI相关知识点整理
EasyUI相关知识整理 EasyUI是一种基于jQuery.Angular..Vue和React的用户界面插件集合.easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能.也就 ...
- Asp.Net Core WebAPI入门整理(三)跨域处理
一.Core WebAPI中的跨域处理 1.在使用WebAPI项目的时候基本上都会用到跨域处理 2.Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包 3.使用方法简单 ...
随机推荐
- $.ajaxSetup
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> ...
- 第7课:sql注入、操作session、cookie实例、网络编程、操作Excel
1. 简单讲一些sql注入的内容 name = 'zdq' sex = '女' cur.execute("select * from bt_stu where real_name='%s'& ...
- 海康威视 嵌入到web页面相关问题
因项目上面需求,接触到了海康威视的设备,要把他嵌入到web页面中,所以就开始了爬坑之路 刚开始不知道如何把设备的页面嵌入到项目的web页面中,直到我遇见了他——“WEB3.0控件开发包V1.0.9_C ...
- Python面向对象 --- 新旧式类、私有方法、类属性和类方法、静态方法
一.Python面向对象中的新旧式类 1)新式类(推荐使用):在定义类时,类后边括号里要继承基类(object).在python3.x中若没有指定父类,会默认使用的是object作为基类:在pytho ...
- vim学习相关链接
1:http://blog.csdn.net/niushuai666/article/details/7275406 2:http://ju.outofmemory.cn/entry/79671 3. ...
- IOS开发 警告 All interface orientations must be supported unless the app requires full screen.
在IOS开发中遇到警告 All interface orientations must be supported unless the app requires full screen. 只要勾上R ...
- 自回归模型(AR )
2017/7/2 19:24:15 自回归模型(Autoregressive Model,简称 AR 模型)是最常见的平稳时间序列模型之一.接下将介绍 AR 模型的定义.统计性质.建模过程.预测及应用 ...
- MVC MVVM和传统三层的理解
才学疏浅,请勿喷,如果有理解不对的地方请留言 其实,每个小小的程序员都有个毛病,就是反复写一个东西会觉得这个东西没有新意. 就像让你写三层,你却还是觉得想写MVC模式. 软件小公司做B/S的大部分还是 ...
- 10day1
但愿复赛的时候旁边坐的不是学军镇海杭二绍一的众神犇. 阅览室 模拟 [问题描述] 一个阅览室每天都要接待大批读者.阅览室开门时间是 0,关门时间是 T.每位读者的到达时间都 不一样,并且想要阅读的 ...
- spring加载jar包中多个配置文件(转载)
本文转载自:http://www.cnblogs.com/GarfieldTom/p/3723915.html