oozie的调度案例

在上篇博客中介绍了关于oozie的安装相关内容,本篇来讲述一下oozie的一个简单使用案列。

在讲使用案例之前我们先要着重强调一下几点
1. Oozie的工作流必须是一个有向无环图,实际上Oozie就相当于Hadoop的一个客户端,当用户需要执行多个关联的MR任务时,只需要将MR执行顺序写入workflow.xml,然后使用Oozie提交本次任务,Oozie会托管此任务流

2.使用Oozie之前必须先启动hdfs,yarn和jobhistory(为了兼容性问题建议用CDH版本的hadoop)然后在执行bin/oozied.sh start启动oozie

3.oozie本质就是一个作业协调工具( 底层原理是通过将xml语言转换成mapreduce程序来做,但只是在集中map端做处理,避免shuffle的过程。)

案例:调度shell脚本案例
1)解压官方案例模板
[root@hadoop102 oozie-4.0.0-cdh5.3.6]# tar -zxvf oozie-examples.tar.gz

2)创建oozie-apps目录
[root@hadoop102 oozie-4.0.0-cdh5.3.6]# mkdir oozie-apps

3)拷贝任务模板到oozie-apps
[root@hadoop102 oozie-4.0.0-cdh5.3.6]# cp -r examples/apps/shell/ oozie-apps

4)修改oozie-apps里面的job.properties

在这里插入图片描述

将上述内容替换为下面的,注意jobTracker指向的是yarn所在的机器

#HDFS地址
nameNode=hdfs://hadoop102:8020
#ResourceManager地址
jobTracker=hadoop103:8032
#队列名称
queueName=default
#作业的根目录
examplesRoot=oozie-apps
#指定oozie的shell脚本在HDFS中的路径
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/shell
#执行的Shell脚本
EXEC=p1.sh

5)在/opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps/shell目录下新建一个文件 p1.sh 然后添加如下内容后保存退出

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

6)查看workflow.xml文件,可以看到默认的是打印一句话,我们将这个更改为执行我们的脚本。

在这里插入图片描述

将上面的红框框的内容删掉并用下面的内容代替

 <exec>${EXEC}</exec>
        <!-- <argument>my_output=Hello Oozie</argument> -->
        <file>/user/root/oozie-apps/shell/${EXEC}#${EXEC}</file>

        <capture-output/>

然后在将第一个框里面的to的值改为end,第二个框的内容全部删除掉后保存退出(我们这个任务主要就是执行刚才的脚本后成功的话就退出,失败的话就走fail节点)

在这里插入图片描述

7)上传任务配置

[root@hadoop102 oozie-4.0.0-cdh5.3.6]# /opt/module/cdh/hadoop-2.5.0-cdh5.3.6/bin/hadoop fs -put oozie-apps/ /user/root

再去web端看一下可以看到已经上传成功

在这里插入图片描述

8)执行任务,执行完任务以后会出现一个JobId

[root@hadoop102 oozie-4.0.0-cdh5.3.6]# bin/oozie job -oozie http://hadoop102:11000/oozie -config oozie-apps/shell/job.properties -run

在这里插入图片描述

点击我们oozie中的web端可以看到已经显示成功,并且也是安装我们的预期走的是start -->shell–>end

关于web页面显示内容不全的因为其实不是因为任务执行的有问题,很可能还是浏览器的问题,这里推荐使用谷歌浏览器来访问

在这里插入图片描述

在这里插入图片描述

我们在去hadoop102,103,104上的/opt/module一次查看发现生成的p1.log在hadoop104上面,也即是yarn将本次的任务交给了hadoop104来执行

在这里插入图片描述

我们cat一下hadoop104上面的p1.log,也即是上述的脚本的运行结果。

在这里插入图片描述

这一步其实在历史服务器中也可以看到任务交给了hadoop104执行

在这里插入图片描述

小提示:也可以在任务的Job DAG(有向无环图)里面看一下任务的执行情况,这符合之之前所说的oozie的workflow(工作流),如果任务成功执行的话流程会变绿色,失败的话会变红色。

在这里插入图片描述

关于oozie的常用命令:
#提交任务。-config是指定oozie任务的job.properties文件位置,submit是提交任务,每次提交任务后会把任务放到服务器并生产一个jobId,但是并不会运行这个任务
bin/oozie job -oozie http://hadoop102:11000/oozie/ -config /opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps/shell/job.properties -submit

#执行该任务,0000000-200801125303709-oozie-root-W这个是jobId,每个任务的id是唯一的,这个是由提交任务之后产生的
bin/oozie job -oozie http://hadoop102:11000/oozie/ -start 0000000-200801125303709-oozie-root-W

#运行该任务,运行=提交+执行
bin/oozie job -oozie http://hadoop102:11000/oozie/ -config /opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps/shell/job.properties -run

#杀死某个任务
bin/oozie job -oozie http://hadoop102:11000/oozie -kill 0000000-200801125303709-oozie-root-W

#查看任务的信息,可以查看到每个执行项状态
bin/oozie job -oozie http://hadoop102:11000/oozie -info 0000000-200801125303709-oozie-root-W

#查看任务的日志,可以查看每个任务的输出内容及日志内容
bin/oozie job -oozie http://hadoop102:11000/oozie -log 0000000-200801125303709-oozie-root-W

#验证workflow.xml文件是否有语法问题
bin/oozie validate -oozie http://hadoop102:11000/oozie workflow.xml

参考资料:
https://www.cnblogs.com/shenjie2017/articles/9774681.html

https://blog.csdn.net/TNTZS666/article/details/81915820

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值