Apache Oozie学习笔记(一)
作者:あおざき1.Oozie概述 Oozie 是一个用来管理 Hadoop生态圈job的工作流调度系统。由Cloudera公司贡献给Apache。Oozie是运行于Java servlet容器上的一个java web应用。Oozie的目的是按照DAG(有向无环图)调度一系列的Map/Reduce或者Hive等任务。Oozie 工作流由hPDL(Hadoop Process Definition Language)定义(这是一种XML流程定义语言)。适用场景包括:
来源:恒生LIGHT云社区
需要按顺序进行一系列任务;
需要并行处理的任务;
需要定时、周期触发的任务;
可视化作业流运行过程;
运行结果或异常的通报。
文章图片
2.Oozie架构
文章图片
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配置相关的参数,然后由Oozie
Server向MR提交job来启动工作流。
工作流由两种类型的节点组成,分别是:
Control Flow Nodes :控制工作流执行路径,包括start,end,kill,decision,fork,join。
Action Nodes :决定每个操作执行的任务类型,包括MapReduce、java、hive、shell等。
文章图片
4.Oozie工作流类型 (1)WorkFlow
规则相对简单,不涉及定时、批处理的工作流。顺序执行流程节点。
Workflow有个大缺点:没有定时和条件触发功能。
文章图片
(2)Coordinator
Coordinator将多个工作流Job组织起来,称为Coordinator
Job,并指定触发时间和频率,还可以配置数据集、并发数等,类似于在工作流外部增加了一个协调器来管理这些工作流的工作流Job的运行。
文章图片
(3)Bundle
针对coordinator的批处理工作流。Bundle将多个Coordinator管理起来,这样我们只需要一个Bundle提交即可。
文章图片
【Apache Oozie学习笔记(一)】想向技术大佬们多多取经?开发中遇到的问题何处探讨?如何获取金融科技海量资源?
恒生LIGHT云社区,由恒生电子搭建的金融科技专业社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。
扫描下方小程序二维码,加入我们!
文章图片
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》