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,这样就可以变成首尾相连的串联任务。

相关文章
|
2月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
113 5
|
3月前
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
66 3
|
8月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
分布式计算 监控 Hadoop
详解 Apache ZooKeeper 和 Apache Oozie
【8月更文挑战第31天】
149 0
|
5月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
433 0
|
7月前
|
存储 Apache 文件存储
在Apache环境下为Web网站增设访问控制:实战指南
在Apache服务器上保护网站资源涉及启用访问控制模块(`mod_authz_core`和`mod_auth_basic`),在`.htaccess`或`httpd.conf`中设定权限,如限制对特定目录的访问。创建`.htpasswd`文件存储用户名和密码,并使用`htpasswd`工具管理用户。完成配置后重启Apache服务,访问受限目录时需提供有效的用户名和密码。对于高安全性需求,可考虑更复杂的认证方法。【6月更文挑战第20天】
482 4
|
7月前
|
弹性计算 应用服务中间件 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天】
670 1
|
6月前
|
分布式计算 Apache Spark
|
1月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
344 33
The Past, Present and Future of Apache Flink
|
3月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
948 13
Apache Flink 2.0-preview released

相关实验场景

更多

推荐镜像

更多