oozie 用法说明

【Oozie】CDH集群的oozie手把手快速入门 背景 在今天中午,本人快乐的干饭的时候,领导打电话过来询问oozie是个什么样的东西,能不能有个用例?在本人的理解里面,oozie主要是个调度工具。所以本篇为CDH集群的oozie的快速入门教程 环境准备 CDH集群一套 CDH集群中集成了oozie和hue 因为oozie整合进hue中界面化了,不像那种命令行提交的方式,要写很多繁杂的xml文件,所以本文就开始揭露,如何快速入门oozie 新建一个调度任务 本文使用一个pyspark作为调度用例: pyspark的代码如下,文件名为:pyspark_ 阅读详情

本博客一共包含ooize workflow流程写法,job.properties 文件配置,ooize 任务的启动与杀死。

oozie 流程定义:

1.workflow 的开始和workflow 的命名

<workflow-app xmlns="uri:oozie:workflow:0.2" name="adx-wf">
<start to="adx_clean_forking"/>

说明:

    在xmls属性中定义了workflow的版本为0.4,workflow的版本不能高于oozie兼容的最高版本,可以降低

2.决定另外一个workflow 运行的频率并且调用另外一个workflow:

<decision name="is_23hour">
        <switch>
            <case to="day_offline_wf_node">
                ${hour eq 23}
            </case>
            <default to="vivo_datasynch_sqoop_join_node" />
        </switch>
    </decision> 

<action name="day_offline_wf_node">
        <sub-workflow>
            <app-path>${nameNode}/user/oozie/jutou/datasynch/day_offline_wf</app-path>
            <propagate-configuration/>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
        </sub-workflow>
        <ok to="vivo_datasynch_sqoop_join_node"/>
        <error to="fork-send-error-message"/>
    </action>

3.运行Java 代码:

  <action name="vivo_idea_minutely_temp_node">
        <java>
            <!--jobTracker(ResourceManager)地址-->
            <job-tracker>${jobTracker}</job-tracker> 
            <name-node>${nameNode}</name-node> <!--hdfs 地址-->
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <main-class>com.huanju.realtime.JuTouRealtimeDataSynch</main-class>
            <arg>${jdbcUrl}</arg>
            <arg>${username}</arg>
            <arg>${password}</arg>
            <arg>${today}</arg>
            <arg>${yesterday}</arg>
            <arg>${tomorrow}</arg>
        </java>
        <ok to="vivo_idea_minutely_sqoop_node"/>
        <error to="fork-send-error-message"/>
    </action>

4.oozie 中执行hql 语句

<action name="vivo_feed_report_add_partition_node">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <job-xml>my-hive-default.xml</job-xml>
           <!-- 
           <configuration> 
                  <property>
                        <name> 要覆盖hive配置文件中的参数</name>
                        <value>参数值</value>
                   </property>
             </configuration>-->
            <script>hql/vivo_feed_report_add_partitions.hql</script>
            <param>day=${today}</param>
        </hive>
        <ok to="vivo_datasynch_sqoop_join_node"/>
        <error to="fork-send-error-message"/>
    </action>

说明:

prepare 如果需要在hive作业之前创建或删除HDFS目录,则可以增加prepare参数,指定需要创建或删除的HDFS路径。
job-xml 指定hive-site.xml所在HDFS上的路径;如果是CDH搭建的集群,则可以在任何一台hive gateway机器上的/etc/hive/conf目录下找到该配置文件。如果不指定该文件路径,hive action就不work。
configuration 包含传递给hive作业的参数,可以没有这个配置项,这样就全部使用默认配置
script 指定hql脚本所在HDFS上的路径;这个参数是hive action必须的。这个hql脚本中,可以使用${VARIABLES}来表示参数,获取在hive action中定义的param参数配置
param 定义在hql脚本中所需要的变量值

5.在oozie中执行sqoop

<action name="vivo_promotion_info_sqoop_node">
        <sqoop xmlns="uri:oozie:sqoop-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <job-xml>my-sqoop-default.xml</job-xml>
            <command>import --connect "${jdbcUrl}" --username ${username} --password ${password} --table tb_vivo_promotion  --fields-terminated-by \001  -m 1  --columns company_id,plat_promotion_id,plat_promotion_name,daily_budget,startdate,enddate,is_delete,ctime,mtime --target-dir /jutou/original/vivo_promotion  --delete-target-dir  --hive-drop-import-delims --null-string \\N --null-non-string \\N</command>
        </sqoop>
        <ok to="vivo_basic_data_join_node"/>
        <error to="fork-send-error-message"/>
    </action>

6.在oozie中执行邮件发送

<action name="send_email">
        <email xmlns="uri:oozie:email-action:0.1">
            <to>${toEmail}</to>
            <cc>${ccEmail}</cc>
            <subject>[OOZIE FAILED] ${wf:name()}  ${wf:id()} </subject>
            <body>Task failed!
                wfid:${wf:id()}
                Error message:[${wf:errorMessage(wf:lastErrorNode())}].</body>
        </email>
        <ok to="join_send_error_message"/>
        <error to="fail"/>
</action>

7.在oozie中执行shell脚本

<action name="send_wechat">
        <shell xmlns="uri:oozie:shell-action:0.1">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
	         <property>
	             <name>mapred.job.queue.name</name>
	             <value>${queueName}</value>
	         </property>
	     </configuration>
	     <exec>weixin.py</exec>
	     <argument>${wechats}</argument>
	     <argument>${nameNode} ${wf:name()} | ${wf:id()} Failed,Please Check it !</argument>
         <file>${nameNode}/${hdfsroot}/weixin.py</file>
         </shell>   
        <ok to="join_send_error_message"/>
        <error to="fail"/>
</action>

  说明:

        <exec>脚本名</exex>是执行脚本的命令, <file>脚本的具体位置</file>存放脚本的位置,可使用相对路径和绝对路径

8.错误终止和成功结束

<kill name="fail">
	<message>failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end" />

job.properties 写法:

#hdfs所在节点和端口
nameNode=hdfs://u007:8020
#RM 所在节点以及端口号
jobTracker=U007:8032
queueName=default
examplesRoot=examples
oozie.usr.system.libpath=true    
#指是否加载用户lib目录
oozie.libpath=${nameNode}/user/oozie/libserver   
#用户lib库所在位置
oozie.wf.application.path=${nameNode}/user/oozie/tt/user_count/wf 
#oozie流程所在hdfs地址即workflow.xml所在地址
hiveMetastore=U006
#发送邮件人和抄送邮件人,多个用逗号隔开
toEmail=
ccEmail=
jdbcUrl=jdbc:mysql://10.10.25.13:3306/tt?useUnicode=true&characterEncoding=utf-8
username=root
password=123456

oozie 任务启动与杀死:

启动oozie任务命令:

oozie job -oozie http://${OOZIE_SERVER}:11000/oozie/ -config ${WORKROOT}/wf/job.properties -run -verbose -Dday=${day} -Dhour=${hour} -Dforce=${force} -Dstartline=${startline} -DbeforeFiveDate=${beforeFiveDate}

OOZIE_SERVER:oozie 所在节点

-config :job.properties 所在目录

-verbose :任务执行所需要的参数,如果没有参数,不写即可

杀死oozie任务命令:

oozie job -oozie http://${OOZIE_SERVER}:11000/oozie -kill job_id

Oozie的安装和使用 本实验练习Oozie的安装和配置,然后运行例子进行oozie的功能测试。学会Oozie的安装和使用Ubuntu16.04、mysql-5.7.22、oozie-4.3.0、hadoop-2.7.3、jdk1.8.0_73解压编译好的oozie安装包,然后进行配置,配置主要有hadoop文件的配置和oozie文件的配置。 ♥ 知识链接 oozie简介   Oozie是一种Java Web应用程序,它运行在Java servlet容器——即Tomcat——中,并使用数据库来存储以下内容:1.工作流定义,2.当前 阅读详情

相关推荐

Oozie工作流调度原理与代码实例讲解

Oozie工作流调度原理与代码实例讲解 1.背景介绍 在大数据处理领域,工作流调度系统扮演着至关重要的角色。Apache Oozie就是这样一个功能强大、可扩展性高的工作流调度系统。它允许用户定义由多个任务组成的有向无环图(DAG),并以可靠的方式按照指定的顺序执行这些任务。Oozie

AI架构师小马 786

Oozie的使用

1、案例一:Oozie调度shell脚本 目标:使用Oozie调度Shell脚本 分步实现: 1) 解压官方案例模板 $ tar -zxf oozie-examples.tar.gz 2) 创建工作目录 $ mkdir oozie-apps/ 3) 拷贝任务模板到oozie-apps/目录 $ cp -r examples/a...

Faded1573606285的博客 347

KiCad插件安装太慢?试试华秋版,再手把手教你装这5个实用插件

本文介绍了KiCad华秋发行版如何解决插件安装慢的问题,并详细推荐了5个实用插件及其安装方法。华秋版优化了国内用户的下载速度,预装了常用扩展包,包括BOM生成器、3D模型增强工具等,显著提升PCB设计效率。

weixin_29184075的博客 547

【Oozie学习之一】Oozie

环境  虚拟机:VMware 10   Linux版本:CentOS-6.5-x86_64   客户端:Xshell4  FTP:Xftp4  jdk8  CM5.4 同类产品:Azkaban 一、简介Oozie由Cloudera公司贡献给Apache的基于工作流引擎的开源框架,是用于Hadoop平台的开源的工作流调度引擎,是用来管理Hadoop作业,属于web应用程序,由Oozi...

weixin_30525825的博客 217

Unity中URP实现水体效果(泡沫)

在上篇文章中,我们实现了水体的深度。在这篇文章中,我们来使用上篇文章采样后的深度图来实现水中的泡沫效果。

楠溪泽岸的博客 3489

GPU加速的容器化AI开发:AnolisOS/CentOS8中的NVIDIA驱动与CUDA最佳实践

本文详细介绍了在AnolisOS/CentOS8系统中配置NVIDIA驱动与CUDA的最佳实践,涵盖驱动安装、CUDA工具链配置、容器运行时设置及性能优化等关键步骤。特别针对容器化AI开发场景,提供了GPU透传和资源管理的实用方案,帮助开发者构建高效的GPU加速开发环境。

weixin_27791839的博客 341

什么是Oozie?如何使用Oozie?蒟蒻博主带你快速上手Oozie!

        本篇博客,博主为大家介绍的是Oozie,一种运行在hadoop平台上的工作流调度引擎。如果看完后有点收获,不妨给博主一个大大的赞|ू・ω・` )          文章目录Oozie1、简介Oozie的组件介绍2、架构3、安装4、使用4.1 使用oozie调度shell脚本第一步:解压官方提供的调度案例第二步:创建工作目录第三步:拷

大数据梦想家 8507

浅谈python反序列化漏洞

0x01 python序列化与反序列化 Python 的序列化和反序列化是将一个类对象向字节流转化从而进行存储和传输,然后使用的时候再将字节流转化回原始的对象的一个过程。python中的序列化操作是通过pickle模块,而该模块主要包含l dumps将dict转化为str格式,loads将str格式转化为dict格式。 dump和load与文件操作结合起来, pickle.dump(obj, f...

Lethe's Blog 3220

Oozie快速入门系列(1) | Oozie的简单介绍及部署

  此篇为大家带来的是Oozie的简单介绍及部署。 此部分所需jar包等博主已经打包上传到百度云如有需要,请自行下载 链接:https://pan.baidu.com/s/1H3BvKEftWKitjDf2EhX44g 提取码:96a7 目录一. 什么是Oozie二. Oozie的功能模块介绍2.1 模块2.2 常用节点三. Oozie的部署3.1 部署Hadoop(CDH版本)1. 上传及解压缩2. 修改Hadoop配置3. 一. 什么是Oozie   Oozie英文翻译为:驯象人。一个基于工作流

不温卜火 5978

软件工程实验报告--用Visio绘制数据流图、ER图、状态图、软件结构图、程序流程图、系统流程图

用Visio绘制数据流图、ER图、状态图、软件结构图、程序流程图、系统流程图

m0_73814332的博客 4162

RAGFlow API 实战指南:从数据集管理到智能对话

本文提供了RAGFlow API的实战指南,详细介绍了如何从零开始构建基于检索增强生成(RAG)的智能应用。内容涵盖环境准备、API密钥获取、核心概念理解,以及通过API进行数据集创建与管理、文档上传解析、知识块管理、检索测试,最终创建并配置智能聊天助手,实现基于私有知识库的精准对话。

weixin_29284885的博客 379

Oozie

工作流和定时执行框架Oozie功能模块的介绍、Oozie Shell、Oozie的4个基本案例

学习记录和总结 8893

Backtrader Web:开源量化交易全栈平台

Backtrader Web是一个基于Backtrader框架的现代化量化交易全栈平台,将专业回测引擎与Web技术结合,提供从策略开发到实盘交易的完整解决方案。平台采用FastAPI+Vue3技术栈,具有118个内置策略模板、专业可视化分析工具和完整的策略生命周期管理功能。支持策略版本控制、参数优化、模拟/实盘交易及监控告警,通过RESTful API和WebSocket实现前后端交互。系统采用模块化设计,包含策略服务、回测服务等核心模块,支持SQLite/PostgreSQL等多种数据库。安装简单,5分钟

云金杞 643

oozie简介_Oozie简介

oozie简介 在Hadoop中执行的任务有时需要将多个Map / Reduce作业链接在一起以完成其目标。 [1]在Hadoop生态系统中,有一个相对较新的组件Oozie [2],该组件允许将多个Map / Reduce作业组合成一个逻辑工作单元,从而完成更大的任务。 在本文中,我们将介绍Oozie及其使用方式。 什么是Oozie? Oozie是一个Java Web应用程序,它在Jav...

cunfu6353的博客 1074

链接文件及功能安全:基于Tasking的LSL链接文件知识点梳理及实际应用分析

本文旨在记录研究链接文件时所遇到的问题及个人理解,以便日后查阅。在探索过程中,我遇到了诸多问题,同时对链接文件有了初步的认识。通过记录这些问题与理解,我希望能够为后续的研究提供清晰的思路和有价值的参考。这不仅是对研究过程的总结,更是对未来学习和实践的有力支持。

梦想技术家 1103

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Oozie:详细的为你介绍什么是Oozie如何安装配置Oozie

絮叨两句: 博主是一名软件工程系的在校生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们 人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战 少年易老学难成,一寸光阴不可轻。 最喜欢的一句话:今日事,今日毕 Oozie的介绍          Oozie是运行在hadoop平台上的一种工作流调度引擎它可以用来调度与管理hadoop任务,如,MapReduc.

1449

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

oozie调度shell脚本

KEY 含义 nameNode HDFS地址 jobTracker jobTracker(ResourceManager)地址 queueName Oozie队列(默认填写default) examplesRoot 全局目录(默认填写examples) oozie.usr.system.lib...

抓住人生的每一分每一秒,胜过虚度中的每一年每一月!!! 4227

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

oozie详解

1、什么是Oozie Oozie是一种java web应用程序,它运行在java servlet容器中,并使用数据库来存储一下内容:       ①工作流定义       ②当前运行的工作流实例,包括实例的状态和变量 Oozie工作流失放置在控制依赖DAG(有向无环图)中的一组动作(例如:hadoop的Map/Reduce作业、pig作业等),其中指定了动作执行的顺序。我们会使用hPD...

crazzy_lp的博客 1964

Hue集成Oozie

5.1.修改hue配置文件hue.ini [liboozie] # The URL where the Oozie service runs on. This is required in order for # users to submit jobs. Empty value disables the config check. oozie_url=http://node-...

最慢的步伐不是跬步,而是徘徊;最快的脚步不是冲刺,而是坚持 7023

【oozie】将oozie的数据库配置为mysql

假设已经将oozie安装好了,oozie内置的默认数据库为derby,现在改为mysql。 1. 在本机的mysql中创建oozie对应的数据库和用户名,密码 $ mysql -u root -p Enter password: ******   mysql> create database oozie; Query OK,

shuhuai007的专栏 7343

Oozie安装教程

大数据任务调度工具oozie的安装

a805814077的博客 2491

Oozie 安装笔记

Oozie 安装笔记 版本 3.0.0     1.      下载 oozie 3.0.0版本文件。 http://oozie.apache.org/   2.      安装 & 配置 bin/oozie-setup.sh -hadoop 0.20.2/usr/local/hadoop/ -extjs ext-2.2.zip   A.     修改 hadoop 配置文件增加

幸运小侯子 3835
上一篇: shell 脚本发送邮件(可带附件)
下一篇: Java 线程学习
date-date
博客等级 码龄9年 6粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值