1.1-1.4 hadoop调度框架和oozie概述

一、hadoop调度框架

Linux Crontab 

Azkaban             https://azkaban.github.io/

Oozie             http://oozie.apache.org/

Zeus(阿里的)         https://github.com/michael8335/zeus2

二、oozie架构

1、oozie

一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对Hadoop MapReduce和Pig Jobs的任务调度与协调。
Oozie需要部署到Java Servlet容器中运行。

Oozie工作流定义,同JBossjBPM提供的jPDL一样,也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程的定义。
对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发、汇合等等。

Oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及
控制流程的执行路径(Execution Path),如decision、fork、join等;而动作节点包括Hadoop map-reduce、Hadoop文件系统、Pig、SSH、HTTP、eMail和OoZte子流程。

2、Oozie工作流程概述

Oozie是一个基于服务器的工作流引擎, 专门用于运行工作流作业,其中包含运行Hadoop Map / Reduce和Pig作业的操作。

Oozie是一个在Java servlet容器中运行的Java Web应用程序。

出于Oozie的目的,工作流是在控制依赖性DAG(直接非循环图)中排列的动作集合(即Hadoop Map / Reduce作业,Pig作业)。
从一个动作到另一个动作的“控制依赖性”意味着第二个动作在第一个动作完成之前无法运行。

Oozie工作流定义用hPDL(类似于JBOSS JBPM jPDL 的XML过程定义语言 )编写。

Oozie工作流操作在远程系统(即Hadoop,Pig)中启动作业。在操作完成后,远程系统回调Oozie以通知操作完成,此时Oozie继续执行工作流中的下一个操作。

Oozie工作流包含控制流节点和动作节点。

控制流节点定义工作流的开始和结束(开始 ,结束 和失败 节点),并提供控制工作流执行路径(决策 ,分支 和连接 节点)的机制。

动作节点是工作流触发计算/处理任务执行的机制。Oozie为不同类型的操作提供支持:Hadoop map-reduce,Hadoop文件系统,Pig,SSH,HTTP,
eMail和Oozie子工作流。Oozie可以扩展为支持其他类型的操作。

可以参数化Oozie工作流程(使用 工作流定义中的$ {inputDir}等变量)。提交工作流时,必须提供参数值。如果正确参数化(即使用不同的输出目录),
可以同时执行几个相同的工作流作业。

3、工作流程图

OozieV1  Workflow Engine

Oozie V1是一个基于服务器的工作流引擎,专门运行带有执行Hadoop Map/Reduce和Pig作业的操作的工作流作业。

oozieV2 Lifecycle of an Oozie coordinator Engine

基于Oozie v2 isa服务器的协调器Enginel专门负责基于时间和数据触发器运行工作流。它可以基于时间连续运行工作流。每小时运行一次),
以及数据可用性(例如在运行工作流之前,等待输入数据的存在)。

oozieV3

Oozie v3是一个基于服务器的捆绑包引擎,它提供了一个更高级别的Oozie抽象,可以批处理一组协调器应用程序。
用户将能够启动/停止/挂起/恢复/重新运行bundle级别的set coordinator作业,从而实现更好更容易的操作控制。

原文地址:https://www.cnblogs.com/weiyiming007/p/10839477.html

时间: 2024-10-07 04:25:49

1.1-1.4 hadoop调度框架和oozie概述的相关文章

下一代Apache Hadoop MapReduce框架的架构

背景 随着集群规模和负载增加,MapReduce JobTracker在内存消耗,线程模型和扩展性/可靠性/性能方面暴露出了缺点,为此需要对它进行大整修. 需求 当我们对Hadoop MapReduce框架进行改进时,需要时刻谨记的一个重要原则是用户的需求.近几年来,从Hadoop用户那里总结出MapReduce框架当前最紧迫的需求有: (1)可靠性(Reliability)– JobTracker不可靠 (2)可用性(Availability)– JobTracker可用性有问题 (3) 扩展

作业流 oozie调度框架的配置与使用(一)

一: 常见的调度框架 一: oozie 概述与功能 二: oozie 安装与配置 一: 常见的作用调度框架 1.1 linux 下面的计划任务 在工作量比较下的情况下 使用linux 下的crond 使用定制计划任务 * * * * * 后面接调度 job 的命令 分 时 日 月 周 hive -e " " 执行一个sql 命令 hive -f " " 执行一个sql 脚本 结合 crond 使用 1.2 常见的协作调度框架: 1.2.1 Azkaban 框架 参考

作业流调度框架 oozie 使用 (二)

oozie 任务调度处理 标签(空格分隔): 协作框架 一:oozie example 运行任务调度案例 二:oozie 运行自定的mapreduce 的jar 包 三:oozie 调度shell 脚本 四:oozie 的coordinator 周期性调度当前任务 一: 运行oozie example 案例 1.1 解压exmaple包 解压example 包 tar -zxvf oozie-examples.tar.gz cd /home/hadoop/yangyang/oozie/examp

hadoop调度器的原理和应用场景解析

前置篇: 为从根本上解决旧 MapReduce 框架的性能瓶颈,促进 Hadoop 框架的更长远发展,从 0.23.0 版本开始,Hadoop 的 计算框架完全重构,发生了根本的变化.新的 Hadoop MapReduce 框架命名为 Yarn,重构根本的思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是计算资源管理和任务调度 / 监控.ResourceManager全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协

详解应对平台高并发的分布式调度框架TBSchedule

tbschedule是一款非常优秀的高性能分布式调度框架,非常高兴能分享给大家.这篇文章是我结合多年tbschedule使用经验和研读三遍源码的基础上完成的,期间和阿里空玄有过不少技术交流,非常感谢空玄给予的大力支持.我写这篇文章的目的一是出于对tbschedule的一种热爱,二是现在是一个资源共享.技术共享的时代,希望把它展现给大家(送人玫瑰,手留余香),能给大家的工作带来帮助. 一.tbschedule初识 时下互联网和电商领域,各个平台都存在大数据.高并发的特点,对数据处理的要求越来越高,

java并行调度框架封装及示例

参考资料:  阿里巴巴开源项目 CobarClient  源码实现. 分享作者:闫建忠 分享时间:2014年5月7日 --------------------------------------------------------------------------------------- 并行调度封装类设计: BXexample.java package org.hdht.business.ordermanager.quartzjob; import java.util.ArrayList;

山寨版Quartz.Net任务统一调度框架

TaskScheduler 在日常工作中,大家都会经常遇到Win服务,在我工作的这些年中一直在使用Quartz.Net这个任务统一调度框架,也非常好用,配置简单,但是如果多个项目组的多个服务部署到一台服务器时还是不尽如人意. 这段时间很忙,也一直未更新博客了,赶上今天下班早,就研究了一下,弄了个简单版基于Timer的山寨Quartz,当然了只是实现任务调度,闲话少说直接入主题吧 一.技术准备 其实都是普通的微软技术,一想到这方我们第一想到的可能就是反射,本文用了MEF 二.框架搭建 第一我们建立

hadoop压缩框架

一般来说,计算机处理的数据都存在一些冗余度,同时数据中间,尤其是相邻数据间存在着相关性,所以可以通过一些有别于原始编码的特殊编码方式来保存数据,使数据占用的存储空间比较小,这个过程一般叫压缩.和压缩对应的概念是解压缩,就是将被压缩的数据从特殊编码方式还原为原始数据的过程. 压缩广泛应用于海量数据处理中,对数据文件进行压缩,可以有效减少存储文件所需的空间,并加快数据在网络上或者到磁盘上的传输速度.在Hadoop中,压缩应用于文件存储.Map阶段到Reduce阶段的数据交换(需要打开相关的选项)等情

Quartz.net 开源job调度框架

Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联. 整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业. 官方学习文档:http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍:ht