关于oozie

article/2025/9/16 21:54:29

一、定义

1.oozie是一个管理apache hadoop作业的工作调度系统
2.oozie的workflow jobs是由actions组成的有向无环图(DAG)
3.oozie的coordinate jobs是由时间(频率)和数据可用性的重复的workflow jobs .
4.oozie 与hadoop生态圈的其他部分及车鞥在一起,支持多种类型的hadoop作业(如java程序和shell脚本)

二、特点

工作流定义:oozie是通过xml定义。
部署过程:oozie的部署相对困难些,同时它是从yarn上拉任务日志。
任务检测:oozie能有效的检测任务的成功与失败。
操作工作流:oozie支持web、ResttApi、java API操作。
权限控制:oozie基本无权限控制
运行环境:oozie的action主要运行在hadoop中,oozie记录workflow的状态将其保存在mysql中。
出现失败的情况:oozie可以在继续失败的工作流运行

三、原理详解

1.主要概念:
workflow : 工作流,由我们需要处理的每个工作组成,进行需求的流式处理。
Coordinator: 协调器,可以理解为工作流的协调器,可以将多个工作流协调成一个工作流来进行处理。
Bundle:捆,束。将 一对的coordinator进行汇总处理。
2.job组成
job.properties : 记录了job的属性
workflow.xml:使用hPDL定义任务的流程和分支
lib目录: 用来执行具体的任务

注意:
1)这个文件如果是在本地通过命令进行任务提交的话,这个文件在本地就可以,当然也可以放在hdfs上,与workflow.xml和lib处于同一级
2)NameNode,jobTracker和workflow.xml在hhdfs 中的位置必须设置。

job.properties
在这里插入图片描述
在这里插入图片描述

控制流接点:主要包括start 、end、 fork、 join等,其中fork、join成对出现,在fork展开,分支,最后join接点汇聚。
1)start
2)kill
3)end

动作节点:包括hadoop任务、SSH 、HTTP、EMAIL、OOZIE子任务
1)ok–>end
2)error—>end
3)定义具体需要执行的job任务
4)MapReduce、shell、hive
文件需要被放在 HDFS 上才能被oozie调度,如果在启动需要调动MR任务,jar包同样需要在HDFS上
lib目录:在workflow工作流定义的统计目录下,需要有一个lib目录,在lib目录中存在java节点
MapReduce使用的jar包

需要注意的是,oozieb并不是使用指定jar包的名称来启动任务的,而是通过指定主类来启动任务的。在lib包中绝对不能存在某个jar包的不同版本,不能出现多个相同的主类。

3.workflow介绍

在这里插入图片描述


http://chatgpt.dhexx.cn/article/1i1sURcp.shtml

相关文章

任务调度之Oozie详解

利用shell脚本通过crontab进行定时执行,这样实现的话比较简单,但是随着多个job复杂度的提升,无论是协调工作还是任务监控都变得麻烦,我们选择使用oozie来对工作流进行调度监控。 1. Oozie的特点 Oozie是管理hadoop作业的调度系统…

Oozie简介

在Hadoop中执行的任务有时候需要把多个Map/Reduce作业连接到一起,这样才能够达到目的。[1]在Hadoop生态圈中,有一种相对比较新的组件叫做Oozie[2],它让我们可以把多个Map/Reduce作业组合到一个逻辑工作单元中,从而完成更大型的任务…

Oozie

文章目录 **一、** **Apache Oozie****1.** **Oozie概述****2.** **Oozie的架构****3.** **Oozie**基本原理**3.1.** **流程节点** **4.** **Oozie工作流类型****4.1.** **Work**Flow**4.2.** *…

工作流调度工具--Oozie

一、背景 一个完整的数据分析系统通常是由大量的任务单元组成,Shell脚本、Java程序、MapReduce程序、Hive脚本等等,各个任务单元之间存在时间先后及前后依赖关系。 为了很好的组织这样的复杂执行计划,需要一个工作流调度系统来调用执行。 简…

Oozie基础入门

前言: 因为工作需要用到oozie,但是网上的资料越看越迷茫,经过很大的努力,终于折腾清楚了,这里,做一个总结,帮助后来者更好地进行入门,当然,粗鄙之言,难免疏漏…

大数据调度工具oozie详细介绍

背景: 之前项目中的sqoop等离线数据迁移job都是利用shell脚本通过crontab进行定时执行,这样实现的话比较简单,但是随着多个job复杂度的提升,无论是协调工作还是任务监控都变得麻烦,我们选择使用oozie来对工作流进行调…

oozie详解

1、什么是Oozie Oozie是一种java web应用程序,它运行在java servlet容器中,并使用数据库来存储一下内容: ①工作流定义 ②当前运行的工作流实例,包括实例的状态和变量 Oozie工作流失放置在控制依赖DAG(有向无环图)中的一组动作&am…

大数据Hadoop之——任务调度器Oozie(Oozie环境部署)

文章目录 一、概述二、Oozie架构三、Oozie环境部署(Oozie与CDH集成)1)添加服务2)将 Oozie 服务添加到 CDH3)自定义角色分配4)数据库设置5)审核更改6)开始自动安装并自启 四、CDH的 H…

Java并发编程(一):多线程与并发原理回顾

今天来聊一聊经典的Java技术,并发编程。并发是程序的灵魂,一个优秀的Java程序一定会支持高并发,并且,并发编程也是面试环节中经常会问到的一个问题,那么今天我们以一道经典的Java面试题回顾一下Java的并发编程。废话不…

java并发编程的艺术和并发编程这一篇就够了

java并发编程的艺术(精华提炼) 通常我们在使用编发编程时,主要目的是为了程序能够更快的处理,但是并不是说更多的线程就一定能够让程序变得足够快,有时候太多的线程反而消耗了更多的资源,反而让程序执行得更缓慢 一.CPU的上下文切换 就算是单核CPU是能够处理多线程任务的,它只…

JAVA并发编程总结

一、基础知识 1.1 线程安全 当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。 CAP理论 原子性 我们把一个或者多个操作在CPU执行的过程中不被中断的特性称为原子性. 可见性 当一个线程修改了对象状态后&#xf…

Java并发:整理自《Java并发编程实战》和《Java并发编程的艺术》

声明:Java并发的内容是自己阅读《Java并发编程实战》和《Java并发编程的艺术》整理来的。 图文并茂请戳 思维导图下载请戳 目录 (1)基础概念 (2)线程 (3)锁 (4)同步器 (5)并发容器和框架 (6)Java并发工具类 (7)原子操作类 (8)Executor框架(执行机制) (9)…

Java并发编程的艺术-并发编程基础

Java从诞生开始就明智地选择了内置对多线程的支持,这使得Java语言相比同一时期的其他语言具有明显的优势。线程作为操作系统调度的最小单元,多个线程能够同时执行,这将显著提升程序性能,在多核环境中表现得更加明显。但是&#xf…

java并发编程(下篇)

java里的阻塞队列 ArrayBlockingQueue 数组结构组成的有界阻塞队列 LinkedBlockingQeque 链表结构的无界阻塞队列 PriorityBlockingQueue 支持优先级排序的无界阻塞队列 DelayQueue 使用优先级队列实现的无界阻塞队列 LinkedBlockingDeque 链表结构组成的双向队列 并发工具…

Java并发编程之美——第一章 Java并发编程基础

文章目录 Time 2021-12-26——Hireek什么是线程线程的等待和通知等待线程终止的join方法让线程睡眠的sleep方法让出CPU执行权的yield方法线程中断demo 线程上下文切换线程死锁什么是死锁如何避免死锁 用户线程与守护线程ThreadLocalintroduction,下文只阐述重要的se…

Java并发编程入门这一篇就够了(文章很长,但很好哦)

Java并发编程入门这一篇就够了 一、进程与线程1. 进程2. 线程3. 二者对比 二、并行与并发三、Java线程1. 创建和运行线程2. 线程运行原理3. 常见方法4. 常用方法详解及异同区分5. 两阶段终止模式(使得线程优雅的退出)6.主线程与守护线程7. 线程五种状态8…

Java并发编程之Java线程

文章目录 前言01、线程简介02、线程池03、线程间通信总结 前言 记录一下Java并发编程的知识点。有部分内容是借鉴《Java并发编程的艺术》这本书的。本次先介绍一下线程。 01、线程简介 进程和线程的区别 进程:当一个程序被运行,即把程序的代码从磁盘加载…

Java并发编程的艺术

1、并发编程的挑战 1、上下文切换 CPU通过给每个线程分配CPU时间片来实现多线程机制。时间片是CPU分配给各个线程的时间,这个时间非常短,一般是几十毫秒。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务…

Java并发编程简介

并发编程简介 1. 什么是并发编程 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在在同一实体上的多个事件。多个事件在同一时间间隔发生。 并发编程 ①从程序设计的角度来讲,是希望通过某些机制让计算机可以在一个时间段内,执行多个任务…

【java】Java并发编程系列-基础知识(非常详细哦)

文章目录 一、Java并发编程基础1.1 并发编程基本概念1.1.1原⼦性1.1.2 可⻅性1.1.3 有序性 二、内存模型三、重排序四、内存屏障五、总结 一、Java并发编程基础 主要讲解Java的并发编程的基础知识,包括原⼦性、可⻅性、有序性,以及内存模型JMM&#xff…