【Oozie笔记】3. Oozie调度shell脚本
简介Oozie已经安装完成了我们使用Oozie调度Shell脚本。调度Shell脚本解压一下官方案例模板rootmaster:/opt/module/oozie-4.0.0-cdh5.3.6# tar -zxvf oozie-examples.tar.gz在examples目录下的apps中都是oozie的官方示例平时多看看也是不错的。现在我们拿出来shell的示例/opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps/shelloozie-apps是我们自己创建的目录shell是复制的oozie的示例。我们看看里面有什么只有两个文件我们打开一下job.properties#nameNode 是HDFS的地址 nameNodehdfs://localhost:8020 # jobTracker 是yarn的地址 也就是resoucemanage的地址 jobTrackerlocalhost:8021 #提交的队列名称 queueNamedefault #这个参数是任务地址 examplesRootexamples #你仔细观看就可以看到 上面的参数在path里都用到了都是使用${XX} #oozie.wf.application.path 表示的是任务在HDFS上的地址 oozie.wf.application.path${nameNode}/user/${user.name}/${examplesRoot}/apps/shellworkflow.xml工作流配置文件oozie是使用xml配置任务流程!--workflow-app 的参数name任务名称--workflow-appxmlnsuri:oozie:workflow:0.4nameshell-wf!-- start:控制流节点表示开始 to指向动作节点名称 --starttoshell-node/!--action动作节点 name动作节点名称--actionnameshell-node!--shell:shell任务--shellxmlnsuri:oozie:shell-action:0.2!--job-tracker指定yarn地址--job-tracker${jobTracker}/job-tracker!--name-node指定HDFS地址--name-node${nameNode}/name-node!--配置项--configuration!--指定MR的队列--propertynamemapred.job.queue.name/namevalue${queueName}/value/property/configuration!--exec:执行的意思执行shell 必须有exec--exececho/exec!--参数--argumentmy_outputHello Oozie/argument!--如果想要捕获输出需要设置capture-output--capture-output//shell!--运行成功to指向某个控制流节点--oktocheck-output/!--运行失败to指向某个控制流节点--errortofail//action!--decision:决策控制节点 就和java的switch的意思一样--decisionnamecheck-outputswitchcasetoend${wf:actionData(shell-node)[my_output] eq Hello Oozie}/casedefaulttofail-output//switch/decision!--kill终止控制节点--killnamefailmessageShell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]/message/kill!--kill终止控制节点--killnamefail-outputmessageIncorrect output, expected [Hello Oozie] but was [${wf:actionData(shell-node)[my_output]}]/message/kill!--结束控制节点--endnameend//workflow-app这些都是官网的示例呢么我们改造一下让他运行我们自己的shell脚本改动job.propertiesnameNodehdfs://master:8020 #yarn默认的端口是8032 jobTrackermaster:8032 queueNamedefault #修改为自己想放的路径名 myRootoozie-apps # 添加自己的脚本文件名称 execFilemy.sh oozie.wf.application.path${nameNode}/user/${user.name}/${myRoot}/shell改动workflow.xmlworkflow-appxmlnsuri:oozie:workflow:0.4nameshell-wf-mystarttoshell-node/actionnameshell-nodeshellxmlnsuri:oozie:shell-action:0.2job-tracker${jobTracker}/job-trackername-node${nameNode}/name-nodeconfigurationpropertynamemapred.job.queue.name/namevalue${queueName}/value/property/configuration!--这里填写我们在job.properties写的文件名参数即可--exec${execFile}/exec!-- argumentmy_outputHello Oozie/argument --!--这里必须有file不然oozie不知道执行的脚本在哪,而且写完脚本路径必须添加#${execFile} execFile只是一个参数名随便定义--file/user/root/oozie-apps/shell/${execFile}#${execFile}/filecapture-output//shelloktoend/errortofail//action!-- decision namecheck-output switch case toend ${wf:actionData(shell-node)[my_output] eq Hello Oozie} /case default tofail-output/ /switch /decision --killnamefailmessageShell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]/message/kill!-- kill namefail-output messageIncorrect output, expected [Hello Oozie] but was [${wf:actionData(shell-node)[my_output]}]/message /kill --endnameend//workflow-app创建my.sh shell脚本#!/bin/bashdate/opt/module/my.log这个时候我们就已经把文件都修改好了然后上传到HDFS。hadoop fs -put oozie-apps/ /user/root上传的时候一定要上传到规定的文件目录下HDFS的检查呢么我们就运行一下试试执行rootmaster:/opt/module/oozie-4.0.0-cdh5.3.6# bin/oozie job -oozie http://master:11000/oozie -config oozie-apps/shell/job.properties -run已经有任务ID了呢么去oozie的web界面看看我这个页面是已经运行完的点击任务回跳出来一些窗口因为我是伪分布式就一台机器所以yarn只能把任务分配给我这台机器呢么我们去看看结果可以看到日志已经出来了任务是成功的。但是如果是集群模式呢么这个日志文件就是分配到哪个节点就在哪个节点的机器上。如果想看日志还是需要去Yarn界面查看使用History就可以看日志了。日志很长自己慢慢看吧。这是一个成功的案呢么如果不成功呢我们修改my.sh脚本#!/bin/bashdata/opt/module/my.log把date换成data并且把my.sh替换HDFS上的脚本运行oozie任务命令可以看到被杀掉了失败了。但是oozie是看不到详细日志的。需要到yarn上看可以看到是命令找不到符合我们的预期。关于oozie可以看到oozie这个命令有很多选项不只是一个run还有kill等其他选项。

相关新闻

【译】模型上下文协议(MCP)现已在 Visual Studio 中正式发布

【译】模型上下文协议(MCP)现已在 Visual Studio 中正式发布

【译】模型上下文协议(MCP)现已在 Visual Studio 中正式发布 引言2024年,随着大型语言模型(LLM)在开发工具中的广泛应用,开发者对上下文感知能力的需求与日俱增。模型上下文协议(Model Context …

2026/7/28 18:48:11阅读更多 →
钉钉悟空AI办公平台实测:一人公司效率提升方案

钉钉悟空AI办公平台实测:一人公司效率提升方案

1. 钉钉悟空深度测评:一人公司效率神器的真实体验最近测试了钉钉最新推出的AI工作平台"悟空",作为长期关注效率工具的老鸟,我必须说这可能是目前最适合一人公司的生产力解决方案。相比近期热门的OpenClaw,悟空在办公场景…

2026/7/28 18:48:11阅读更多 →
centos7安装vsftpd的防火墙问题 一定要看的防火墙问题

centos7安装vsftpd的防火墙问题 一定要看的防火墙问题

现在版本的centos7 防护墙默认不是使用iptables方式管理,而是firewalld方式。CentOS6.0防火墙用iptables管理。 所以你的vsftpd配置就算成功也无法看到其中的目录 解决的办法有两种 一 使用firewalld 模式(推荐)二使用iptables 关闭 firewll…

2026/7/28 18:48:11阅读更多 →
【AI大模型应用开发】【项目实战】32.Agent智扫引擎项目-(六)模型部署

【AI大模型应用开发】【项目实战】32.Agent智扫引擎项目-(六)模型部署

一.服务端 具体位置如下:/main.py 或者 /app.py 具体代码如下: # 通过接口方式来访问import timefrom Agent.ReAct import ReActAgent from Models.Factory import ChatModelFactory from Tools.Tools import * from langchain_community.chat_message_histories.in_memory i…

2026/7/28 22:27:14阅读更多 →
恋活!终极增强指南:如何使用HF Patch解锁200+插件与完整汉化功能

恋活!终极增强指南:如何使用HF Patch解锁200+插件与完整汉化功能

恋活!终极增强指南:如何使用HF Patch解锁200插件与完整汉化功能 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 你是否曾为…

2026/7/28 22:27:14阅读更多 →
煎饼排序算法详解:从原理到C++实现与优化

煎饼排序算法详解:从原理到C++实现与优化

1. 项目概述:从“翻煎饼”到高效排序如果你对排序算法的印象还停留在冒泡、快排这些经典模型上,那今天聊的这个“煎饼排序”(Pancake Sort)可能会让你眼前一亮。它不像那些算法在内存里悄无声息地交换数据,它的操作过程…

2026/7/28 22:27:14阅读更多 →
OpenClaw v2026.3.7核心升级:可插拔引擎与记忆重构

OpenClaw v2026.3.7核心升级:可插拔引擎与记忆重构

1. OpenClaw v2026.3.7核心升级解析OpenClaw作为当前最热门的开源AI开发框架之一,其2026.3.7版本带来了两项革命性特性:可插拔ContextEngine架构和记忆重构机制。这次升级不仅仅是功能迭代,更是对AI开发范式的一次重塑。1.1 可插拔ContextEng…

2026/7/28 22:27:14阅读更多 →
【JAVA毕设源码分享】基于SpringCloud的美食分享交流平台的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringCloud的美食分享交流平台的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 22:27:14阅读更多 →
Takin 全链路压测平台深度解析:从设计哲学到生产落地

Takin 全链路压测平台深度解析:从设计哲学到生产落地

1. Takin 简介 Takin 是由 Shulie Technology(原数列科技)开源的全链路压测平台,专门为微服务架构下的生产环境性能测试而设计。它通过流量染色、数据隔离、影子库等核心技术,在不污染真实数据、不影响真实用户的前提下,直接在线上环境施加大规模并发流量,精准测量系统容…

2026/7/28 22:25:14阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →