java action例子_oozie调用java实例------Java action

Oozie支持Java action ,Java action 会自动执行workflow任务中制定的java类中的 public static void main(String[] args)方法,会在hadoop集群上以单mapper task的形式执行一个map-reduce job.

workflow任务会等待当前java程序执行完继续执行下一个action,这意味着我们可以写多个action以此来调用多个类.当java类正确执行退出后,将会进入ok控制流;当发生异常时,将会进入error控制流。

Java action 由以下几个元素组成:

• job-tracker (required)

• name-node (required)

• prepare    ---执行删除文件或者创建目录的操作

• configuration   ---将里面配置的参数传递给任务

• main-class (required)  ---指定执行的java类的全类名(包名.类名)

• java-opts    ---提交给驱动程序的参数。

• arg       ---提交给java应用的参数

• file     ---添加额外所需jar包

• archive

• capture-output    ----可以捕获输出

action语法规则如下:

...

[JOB-TRACKER]

[NAME-NODE]

...

...

[JOB-XML]

[PROPERTY-NAME]

[PROPERTY-VALUE]

...

[MAIN-CLASS]

[JAVA-STARTUP-OPTS]

ARGUMENT

...

[FILE-PATH]

...

[FILE-PATH]

...

...

若想调用java类有三个是必需的:1.workflow.xml(名字不可改)  2.job.properties(名字可改) 3.jar包

官网给出的例子:

...

foo:8021

bar:8020

mapred.queue.name

default

org.apache.oozie.MyFirstMainClass

-Dblah

argument1

argument2

...

我们工作时的例子:

1.workflow.xml---放到hdfs目录中

${jobTracker}

${nameNode}

mapred.job.queue.name

${queueName}

test1.OzzieTest1

${jobTracker}

${nameNode}

mapred.job.queue.name

${queueName}

test1.OzzieTest1

Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]

以下几点需要注意:

中的workflow如果设置成0.2那么就不会显示wofkflow的Graph视图,如下图所示:

075088002f0e402fc68d7990795c1e16.png

2.job.properties---放在本地即可

nameNode=hdfs://hgdp-001:8020 -----hdfs地址

jobTracker=hgdp-001:8032     -----jobTracker地址queueName=default         ------oozie队列hdfspath=user/root

examplesRoot=ocn-itv-oozie    -----全局目录

oozie.use.system.libpath=True -----是否加载用户lib库(oozie的system share lib)

oozie.libpath=${nameNode}/${hdfspath}/${examplesRoot}/lib/ -----用户lib库地址(存放所需的jar包)oozie.wf.application.path=${nameNode}/${hdfspath}/${examplesRoot}/wf/wf4/ ----oozie工作流程workflow.xml所在hdfs中的地址

3.oozie运行:

启动任务:oozie job -config job.properties -run -oozie http://xxxx(地址):11000/oozie

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值