管理 Hadoop 作业的工作流调度系统——Oozie
Posted 研发云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管理 Hadoop 作业的工作流调度系统——Oozie相关的知识,希望对你有一定的参考价值。
在 Hadoop 执行任务的过程中
由于一个作业内只有一个 Map
和一个 Reduce 函数
用户往往需要等某个任务执行成功后
才能手动执行第二个任务
若能把多个 Map/Reduce 作业
组合到一个逻辑工作单元中
那就可组成一个工作流
从而自动完成任务调用
——而这就是 Oozie 所能带来的功效
Oozie 由 Oozie client 和 Oozie Server
这两个组件构成
是一种 Java Web 应用程序
也是管理 Hadoop 作业的工作流调度系统
Oozie Server 运行在 Java servlet 容器中
并且需要使用关系型数据库
来存储调度以下信息:
1、工作流定义
2、当前所运行的工作流实例
(包括实例的状态和变量)
Oozie 整体服务框架 ☝☝☝
Ooize 定义了控制流节点 Control Flow Nodes 和操作节点 Action Nodes 。控制流节点除了定义一个工作流何时开始和何时结束(start,end,fail 等),还提供了控制工作流执行路径的机制(decision,fork,join 等)。而操作节点是指能够触发一个计算任务(Computation Task)或者处理任务(Processing Task)执行的节点,包括 Hadoop MapReduce / HDFS / Pig / SSH / HTTP / eMail / Oozie 子流程等,其执行都是远程且异步的,执行结果要么成功要么失败。若是执行失败,Oozie 还提供了一些恢复执行的策略。
Workflow:工作流,用以顺序执行流程节点。Oozie 的工作流必须是一个 DAG(有向无环图)。
Coordinator:用以定时触发 Workflow,多个 Workflow 可以组成一个 Coordinator,可以把前几个 Workflow 的输出作为后一个 Workflow 的输入,也可以定义 Workflow 的触发条件,来做定时触发。
Bundle: 是对一堆 Coordinator 的抽象,用以绑定多个 Coordinator。
如何检测任务是否完成
Oozie 通过两种不同的方式来检测任务是否完成——那就是回调和轮询。
当 Oozie 启动任务后,它会为任务提供唯一的回调 URL,然后任务会在完成的时候发送通知给特定的 URL。在任务无法触发回调URL的情况下,Oozie 可以对计算或处理任务进行轮询,从而保证任务的完成。当然,Oozie 也可以自定义扩展任务类型。
长|按|二|维|码|关|注
获取更多产品介绍及业界动态
研·发·云
以上是关于管理 Hadoop 作业的工作流调度系统——Oozie的主要内容,如果未能解决你的问题,请参考以下文章