大数据技术学习——Oozie
【摘要】 Oozie是Hadoop工作流调度引擎。
1 一句话介绍
Oozie是Hadoop工作流调度引擎。
2 基本概念
- Action:一个计算任务,例如一个MR Job、Pig Job、Shell命令等。
- Workflow:DAG中一系列Action的集合, 仅当前一个Action执行完后才能启动下一个。
- Workflow Definition:对Workflow的程序化描述,由基于XML的hPDL语言定义DAG图上一系列Action和Control Flow节点(Start、End等)。Workflow Job即一个Workflow Definition的可执行实例。
3 Oozie架构
- WebUI:提供Workflow的监控功能。
- WebApp(Oozie):即Oozie Server,接收来自客户端的请求并转发给Oozie-core执行。
- Database:PG数据库,用于存储作业信息。支持多个OozieServer实例对接同一个数据库。
- Hadoop组件:底层执行工作流的各个组件。
- Oozie-core:核心模块,主要用于实现工作流任务的分发、调度,形成对应指令,以及一些周边工作例如日志记录,功能审计等。Oozie支持三种工作流调度引擎:
- Workflow Engine:工作流引擎以Action的方式运行工作流Job,用来执行 Map/Reduce与Pig等Job
- Coordinator Engine:协调员引擎基于时间和数据触发器运行工作流,可以定时调度工作流,也可以在数据可用的时候触发工作流(例如输入数据准备好的情况)。
- Bundle Engine:管道引擎提供了更高级别的Oozie抽象,用户可以批量设置Coordinator应用,并且能够启动/停止/暂停/恢复/重新运行一组Coordinator应用。
三种引擎的关系如下:
4 Oozie基本原理
Oozie的工作流由workflow.xml定义,并在job.properties中定义相关参数。job.properties中会定义workflow.xml文件位置。
5 Oozie HA模式
Oozie的HA是Acive-Active的模式,由ZK去判定任务分配给哪个后端OozieServer。ZK会存储任务的状态信息,当一个OozieServer出现故障时切换到另一个OozieServer上。
未启动HA模式存在多个OozieServer处理同一个任务的情况,造成任务状态不一致。
6 参考
- https://oozie.apache.org/docs/4.3.1/WorkflowFunctionalSpec.html
- https://blog.csdn.net/hansionz/article/details/105991413
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)