写点什么

Apache Oozie 学习笔记 (一)

  • 2022 年 1 月 06 日
  • 本文字数:896 字

    阅读完需:约 3 分钟

作者:あおざき

来源:恒生LIGHT云社区

1.Oozie 概述

Oozie 是一个用来管理 Hadoop 生态圈 job 的工作流调度系统。由 Cloudera 公司贡献给 Apache。Oozie 是运行于 Java servlet 容器上的一个 java web 应用。Oozie 的目的是按照 DAG(有向无环图)调度一系列的 Map/Reduce 或者 Hive 等任务。Oozie 工作流由 hPDL(Hadoop Process Definition Language)定义(这是一种 XML 流程定义语言)。适用场景包括:


需要按顺序进行一系列任务;


需要并行处理的任务;


需要定时、周期触发的任务;


可视化作业流运行过程;


运行结果或异常的通报。


4667

2.Oozie 架构

4668


Oozie Client :提供命令行、java api、rest 等方式,对 Oozie 的工作流流程的提交、启动、运行等操作;


Oozie WebApp :即 Oozie Server,本质是一个 java 应用。可以使用内置的 web 容器,也可以使用外置的 web 容器;


Hadoop Cluster :底层执行 Oozie 编排流程的各个 hadoop 生态圈组件;

3.Oozie 基本原理

Oozie 对工作流的编排,是基于 workflow.xml 文件来完成的。用户预先将工作流执行规则定制于 workflow.xml 文件中,并在 job.properties 配置相关的参数,然后由 OozieServer 向 MR 提交 job 来启动工作流。


工作流由两种类型的节点组成,分别是:


Control Flow Nodes :控制工作流执行路径,包括 start,end,kill,decision,fork,join。


Action Nodes :决定每个操作执行的任务类型,包括 MapReduce、java、hive、shell 等。


4669

4.Oozie 工作流类型

(1)WorkFlow


规则相对简单,不涉及定时、批处理的工作流。顺序执行流程节点。


Workflow 有个大缺点:没有定时和条件触发功能。


4670


(2)Coordinator


Coordinator 将多个工作流 Job 组织起来,称为 CoordinatorJob,并指定触发时间和频率,还可以配置数据集、并发数等,类似于在工作流外部增加了一个协调器来管理这些工作流的工作流 Job 的运行。


4671


(3)Bundle


针对 coordinator 的批处理工作流。Bundle 将多个 Coordinator 管理起来,这样我们只需要一个 Bundle 提交即可。


4672




想向技术大佬们多多取经?开发中遇到的问题何处探讨?如何获取金融科技海量资源?


恒生LIGHT云社区,由恒生电子搭建的金融科技专业社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。


扫描下方小程序二维码,加入我们!



发布于: 刚刚
用户头像

还未添加个人签名 2018.11.07 加入

还未添加个人简介

评论

发布
暂无评论
Apache Oozie学习笔记(一)