【Oozie笔记】4. Oozie逻辑调度执行多个Job

简介

oozie不仅可以执行单个任务,也可以在一个任务中执行多个job,只需要添加多个的action,并让第一个任务成功之后指向第二个任务等以此类推。

执行多个job任务

相比执行多个任务,我们的oozie的任务配置文件是需要做改动的。

job.properties
nameNode=hdfs://master:8020
jobTracker=master:8032
queueName=default
myRoot=oozie-apps
#第一个任务文件名称
execFile1=my.sh
#第二个任务文件名称
execFile2=two.sh
#该任务的HDFS的存放路径地址
oozie.wf.application.path=${nameNode}/user/${user.name}/${myRoot}/shell2
workflow.xml
<workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf-my2">
	<!--start指向第一个任务-->    
	<start to="shell-node1"/>
    <!-- 第一个shell任务 -->
    <action name="shell-node1">
        <shell xmlns="uri:oozie:shell-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <exec>${execFile1}</exec>
            <!--修改为任务1的文件 -->
            <file>/user/root/oozie-apps/shell/${execFile1}#${execFile1}</file>
            <capture-output/>
        </shell>
        <!-- 运行成功 指向第二个任务 -->
        <ok to="shell-node2"/>
        <error to="fail"/>
    </action>
    <!-- 第二个shell任务 -->
    <action name="shell-node2">
        <shell xmlns="uri:oozie:shell-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <exec>${execFile2}</exec>
            <!-- <argument>my_output=Hello Oozie</argument> -->
            <file>/user/root/oozie-apps/shell/${execFile2}#${execFile2}</file>
            <capture-output/>
        </shell>
        <ok to="end"/>
        <error to="fail"/>
    </action>
  
    <kill name="fail">
        <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>
my.sh

第一个任务文件

#!/bin/bash
date > /opt/module/my.log
two.sh

第二个任务文件

#!/bin/bash
date > /opt/module/two.log

这两个任务都是获取时间,重定向到不同的日志文件

上传到HDFS

root@master:/opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps# hadoop fs -put shell2/ /user/root/oozie-apps
注意自己的地址,按照自己的实际地址
在这里插入图片描述
在这里插入图片描述

提交oozie任务
root@master:/opt/module# oozie-4.0.0-cdh5.3.6/bin/oozie job -oozie http://master:11000/oozie -config oozie-4.0.0-cdh5.3.6/oozie-apps/shell2/job.properties -run
job: 0000001-190902153908594-oozie-root-W
root@master:/opt/module# 

注意命令:
oozie-4.0.0-cdh5.3.6/bin/oozie job -oozie http://master:11000/oozie -config oozie-4.0.0-cdh5.3.6/oozie-apps/shell2/job.properties -run

oozie-4.0.0-cdh5.3.6/bin/oozie:服务器上oozie的bin目录中的oozie的地址
http://master:11000/oozie:自己服务器上的oozie提交地址
oozie-4.0.0-cdh5.3.6/oozie-apps/shell2/job.properties:服务器上的配置文件地址,不是HDFS上的地址也不是其他地址

运行截图:
在这里插入图片描述
运行日志:
在这里插入图片描述
查看结果:
在这里插入图片描述
相差也就两分钟。

如果你想杀掉某个oozie任务:
root@master:/opt/module/oozie-4.0.0-cdh5.3.6# bin/oozie job -oozie http://master:11000/oozie -kill 0000001-190902153908594-oozie-root-W

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值