oozie调用java实例------shell action
Oozie提供了一个方便的方式来运行任何命令。这可能是Unix命令,Perl或Python脚本,甚至java程序都可以通过Unix shell调用。shell命令运行在任意的Hadoop集群节点上,并且运行在结点上的命令必须保证可在本地可用。
本地提交:
格式:java -cp 全类名(包名.类名) -jar jar包名字
实例如下:
java -cp test1.OzzieTest1 -jar test.jar
运行结果:
shell action 语法:
<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.3">
...
<action name="[NODE-NAME]">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>[JOB-TRACKER]</job-tracker>
<name-node>[NAME-NODE]</name-node>
<prepare>
<delete path="[PATH]"/>
...
<mkdir path="[PATH]"/>
...
</prepare>
<job-xml>[SHELL SETTINGS FILE]</job-xml>
<configuration>
<property>
<name>[PROPERTY-NAME]</name>
<value>[PROPERTY-VALUE]</value>
</property>
...
</configuration>
<exec>[SHELL-COMMAND]</exec>
<argument>[ARG-VALUE]</argument>
...
<argument>[ARG-VALUE]</argument>
<env-var>[VAR1=VALUE1]</env-var>
...
<env-var>[VARN=VALUEN]</env-var>
<file>[FILE-PATH]</file>
...
<archive>[FILE-PATH]</archive>
...
<capture-output/>
</shell>
<ok to="[NODE-NAME]"/>
<error to="[NODE-NAME]"/>
</action>
...
</workflow-app>
shell action的组成元素如下所示:
• job-tracker (required)
• name-node (required)
• prepare ---执行删除文件或者创建目录的操作
• job-xml ---指定一个存在的配置文件
• configuration ---将里面配置的参数传递给任务
• exec (required) ---要执行的shell命令
• argument ---元素指定要传递给shell脚本的参数
• env-var ---传递给shell命令的环境变量
• file
• archive
• capture-outpu ---可以捕获输出
若想调用java类有三个是必需的:1.workflow.xml(名字不可改) 2.job.properties(名字可改) 3.jar包
示例如下:
1.workflow.xml---放到hdfs目录中
<workflow-app name="workflow-java-shell" xmlns="uri:oozie:workflow:0.5">
<start to="java-4f48"/>
<action name="java-4f48">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>java</exec>
<argument>-cp</argument>
<argument>test1.OzzieTest1</argument>
<argument>-jar</argument>
<argument>test.jar</argument>
</shell>
<ok to="End"/>
<error to="Kill"/>
</action>
<kill name="Kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="End"/>
</workflow-app>
2. job.properties ---放本地即可
nameNode=hdfs://hgdp-001:8020
jobTracker=hgdp-001:8032
queueName=default
hdfspath=user/root
examplesRoot=ocn-itv-oozie
oozie.use.system.libpath=True
oozie.libpath=${nameNode}/${hdfspath}/${examplesRoot}/lib/
oozie.wf.application.path=${nameNode}/${hdfspath}/${examplesRoot}/wf/wf5/
3.oozie运行:
启动任务:oozie job -config job.properties -run -oozie http://xxxx(地址):11000/oozie
运行结果如下图所示:

oozie调用java实例------shell action的更多相关文章
- oozie调用java实例------Java action
Oozie支持Java action ,Java action 会自动执行workflow任务中制定的java类中的 public static void main(String[] args)方法, ...
- Oozie调用Spark实例
oozie调用spark有三样是必须有的: workflow.xml(不可改名) , job.properties(可改名) , jar包(自备). 1.workflow.xml workflow.x ...
- oozie 完整流程实例
Oozie概述: Oozie是一个基于Hadoop工作流引擎,也可以称为调度器,它以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar,spark等等.在实际工作中,遇到对数据 ...
- Linux(centos 6.5) 调用java脚本以及定时运行的脚本实例及配置文件具体解释
Linux(centos 6.5) 调用java脚本以及定时运行的脚本实例 一.调用java程序脚本(默认已经搭建好了Java环境) 1.jdk 安装路径 /usr/jdk/jdk1.7/-- 2.j ...
- Flink整合oozie shell Action 提交任务 带kerberos认证
最近这段时间一直在忙新集群迁移,上了最新的cdh6.3.0 于是Flink 提交遇到了许多的问题 还好有cloudera License 有了原厂的帮助和社区的伙伴,问题解决起来快了不少,手动滑稽 集 ...
- oozie调用shell
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agree ...
- 转载 基于JAVA每月运势api调用代码实例
代码描述:基于JAVA每月运势api调用代码实例 接口地址:http://www.juhe.cn/docs/api/id/58 原文链接:http://outofmemory.cn/code-snip ...
- C#调用Java方法(详细实例)
C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...
- PHP调用JAVA的WebService简单实例
使用PHP调用JAVA语言开发的WebService.客户端提交两个String类型的参数,服务端返回一个对象类型.服务端使用AXIS-1.4作为SOAP引擎.客户端为PHP5.2.9,使用NuSOA ...
随机推荐
- PIE SDK图层树伙伴控件示例
1. 功能简介 TocControl控件的主要作用是显示当前加载的图层有哪些.采用什么样的符号等,目的是使用户对当前加载的数据和结构有一个总体的把握.与之相关联的伙伴控件有MapControl,Pa ...
- ELK 插件(一) ---- head
一, 插件介绍 01, ElasticSearch Head是什么? ElasticSearch Head是集群管理.数据可视化.增删查改.查询语句可视化工具.可以对集群进行傻瓜式操作.你可以通过插件 ...
- python 爬虫系列09-selenium+拉钩
使用selenium爬取拉勾网职位 from selenium import webdriver from lxml import etree import re import time from s ...
- white-space中 pre pre-line pre-wrap的区别
css3为white-space新增了2个非常高冷的值:pre-line与pre-wrap. 现在我们来看一下它们与pre之间的区别呢? pre:会保留空格,但我想它与pre-line/pre-wra ...
- AWS Intro - Static IP with ssh
Notes: Please config static ip when launch instance. Because change dynamic public ip to static ip, ...
- 从指定Dictionary中移除指定值项
void Removeltems(Dictionary<int, ltem> _dicltemMap, ltem _item) { List<ltem> keys=new Li ...
- cloudermanger安装时需要安装或彻底正确卸载再安装orcal-java7-installer、oracle-java7-set-default(ubuntu14.04版本)(图文详解)
不多说,直接上干货! 安装orcal-java7-installer和oracle-java7-set-default 安装JDK1.7 (所有节点)CDH要求至少是Oracle JDK7,Ubunt ...
- 让 framset 框架中的页面全屏显示
<script type="text/javascript"> window.onload=function(){ if(window.parent!=window){ ...
- ElasticSearch mapping中字段属性总结
- mobile开发技巧(转)
1.隐藏地址栏 很多文档介绍通过调用 window.scrollTo(0, 1); 就可以隐藏地址栏,但是通过实践发现隐藏地址栏还是真够坑爹的啊,只调用这一句话一般不会起作用,我们需要 functio ...