Apache Oozie- 实战操作一串联任务调度(依赖关系)|学习笔记

简介: 快速学习 Apache Oozie- 实战操作一串联任务调度(依赖关系),在实际工作中,可能会存在很多任务模块,这些模块都会存在一定的关系,比如说一件事大概有 ABC 三个模块,在 A 得出的结果作为结果输入,A 传出 B,B 再作为结果传出 C,这样就形成了一个串联任务,在 oozie 当中,配置多个 action, 可以实现多个任务之间的相互依赖关系。比如说一个简单需求,首先执行一个 shell 程序,shell 执行完之后再执行 MR 程序,最后执行 hive 程序,三者之间形成一个首尾相连的串联,看一下具体怎么操作。

开发者学堂课程【Oozie 知识精讲与实战演练Apache Oozie- 实战操作一串联任务调度(依赖关系)】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/716/detail/12790


Apache oozie- 实战操作-串联任务调度(依赖关系)


主要内容:

一、准备工作目录

二、准备调度文件

三、修改配置模板

四、上传调度任务到 hdfs

五、执行调度任务


一、准备工作目录


首先做一个准备工作目录,来到 oozie 的安装包根路径下,创建 sereval-action 文件夹,复制一下然后执行

Cd/export/severs/ozzie-4.1.0-cdh5.14.0/ozzie_works mkdir-p sereval-actions


二、准备调度文件

将之前的 hive、shell、MR 的执行,进行串联成到一个 workflow。把下面的代码复制一下,第一个时 hive 脚本,第二个是 shell 脚本,第三个是一个 libjia 包。

代码如下:

cd /export/servers/oozie-4.1.0-cdh5.14.0/ozie works

cp hive2/script.q sereval-actions/

cp shell/hello.sh sereval-actions/

cp-ra map-reduce/lib sereval-actions/

经过这样的操作,就能在 server 中有了三个不同的资源

图片1.png

有了这三个资源其实并没有任何意义,他们之间也不知道先执行什么。进行配置文件编写。


三、修改配置模板

重点就是 workflow.xml 的插件在这可以通过 action 的流转流程来控制串联执行,开始来到 shell-node 当中,来到第一个 action,叫做 shell-node。

代码如下:

Kstart to="shell-node"/>

caction name-"shell-node">

$(jobTracker)s(nameNode}

mapred.job.queue.name$(queueName}

$(EXEC)

/user/root/oozie works/sereval-actions/$(EXEC)#$(EXEC)

第二个就会来到 mr-node,说明这个程序被串联起来了。如果第一个 action 执行成功,就来到 mr-node,执行失败就来到 fail

代码如下:

actionname-"mr-node"

$(jobtracker)${nameNode

mapred.job.queue.name$(queueName}

准确来讲,Oozie 的串联是通过 action 的成功失败来控制的。

重点看这里成功 跳转到 hive2-nod,失败就跳转到 fail 节点

图片2.png

这里执行的就是 hive sercle 语句Action 的成功失败跳转是通过节点控制,形成首尾相连的串联任务。

代码如下:

Caction nama-"hive2-node">

$(jobTracker)S(nameNode)

cname>mapred.job.queue.name$(queueName)

$(jdbcURL) ceaript script.qc/ncrint>

INPUT=/user/$(wf:user())/$(examplesRoot/input-data/tablec/param)


四、上传调度任务到 hdfs

在这个串联中,先执行 shell 脚本,再执行 mr,最后执行 hive sercle 语句,这样提交上去就会形成一个串联任务,把文件上传到 cd.serval-action 路径下,文件可以直接复制上传,如果不方便可以传到桌面再上传,注意相关格式的调整。配置好这个插件,还有第二个参数很重要,叫做 job.properties,直接编辑,直接把这里的属性复制过来即可。

代码如下:

nameNode=hdfs://node-1:8020 jobTracker=node-1:8032 queueName=default

examplesRoot=oozie_works EXEC=hello.sh

outputDir=/oozie/output inputdir=/oozie/input

idbcURL=jdbc:hive2://node-1:10000/default oozie.use.system.libpath=true

#配置我们文件上传到hdfs的保存路径实际上就是在 hdfs的 /user/root/oozieworks/sereval-actions 这个路径下ooziewfapplicationpath=${nameNodel/user/S(user.name/${examplesRoot/sereval actions/workflow.xml

复制过来还需要注意路径和 ID 的区别,node 在 node-1,不是在9000,这里需要修改,这些都没有问题。另外需要注意的是这里需要换行。

上面的注释可以根据需要进行删除,整个过程就是细心的过程,保存完毕后把这个文件连同下面的文件上传到 hdfs 中,直接复制进行操作,这一步就把配置任务和相关资源一起上传到了指定路径下,这个路径可以做一个查看,这里多了一个serveral-action,

图片4.png

如果路径不对,执行调度的时候就找不到,肯定会有问题。

接下来通过调度的命令进行执行,复制一下,主要解决换行问题,横线要注意用英文,细节不能搞错。如果出现了 job:0000003-190608181008722 这样一串编号,说明提交成功。

最后复制命令进行提交。

代码如下:

bin/oozie job-oozie http://node-1:11000/oozie-config opzie works/sereval-actions/job.properties -run


五、执行调度任务

提交之后查看一下,首先执行了一个 shell,当他执行完以后,发现并没有结束,刷新一下,接下来实行的 have,看最终的 mr 程序是不是需要的程序,,经过一段时间的等待,再刷新,oozie 最终结束。

通过页面,可以刷新 done jobs 就可以结束了。

最后做一个简单的总结,oozie 调度串联任务,通过 action 节点的成功,失败控制执行的流程,如果上一个 action 成功,跳转到下一个 action,这样就可以变成首尾相连的串联任务。

相关文章
|
4月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
80 2
|
4月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
20天前
|
分布式计算 监控 Hadoop
详解 Apache ZooKeeper 和 Apache Oozie
【8月更文挑战第31天】
26 0
|
1月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
84 0
|
2月前
|
分布式计算 Apache Spark
|
3月前
|
存储 Apache 文件存储
在Apache环境下为Web网站增设访问控制:实战指南
在Apache服务器上保护网站资源涉及启用访问控制模块(`mod_authz_core`和`mod_auth_basic`),在`.htaccess`或`httpd.conf`中设定权限,如限制对特定目录的访问。创建`.htpasswd`文件存储用户名和密码,并使用`htpasswd`工具管理用户。完成配置后重启Apache服务,访问受限目录时需提供有效的用户名和密码。对于高安全性需求,可考虑更复杂的认证方法。【6月更文挑战第20天】
122 4
|
3月前
|
弹性计算 应用服务中间件 Linux
双剑合璧:在同一ECS服务器上共存Apache与Nginx的实战攻略
在ECS服务器上同时部署Apache和Nginx的实战:安装更新系统,Ubuntu用`sudo apt install apache2 nginx`,CentOS用`sudo yum install httpd nginx`。配置Nginx作为反向代理,处理静态内容及转发动态请求到Apache(监听8080端口)。调整Apache的`ports.conf`监听8080。重启服务测试,实现两者高效协同,提升Web服务性能。记得根据流量和需求优化配置。【6月更文挑战第21天】
352 1
|
4月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到报错:Apache Kafka Connect错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
153 5
|
4月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
43 1
|
25天前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
31 1

相关实验场景

更多

推荐镜像

更多