搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 研发云 > 管理 Hadoop 作业的工作流调度系统——Oozie

管理 Hadoop 作业的工作流调度系统——Oozie

研发云 2018-02-28

在 Hadoop 执行任务的过程中

由于一个作业内只有一个 Map

和一个 Reduce 函数

用户往往需要等某个任务执行成功后

才能手动执行第二个任务

若能把多个 Map/Reduce 作业

组合到一个逻辑工作单元中

那就可组成一个工作流

从而自动完成任务调用

——而这就是 Oozie 所能带来的功效

管理 Hadoop 作业的工作流调度系统——Oozie

Oozie 由 Oozie client 和 Oozie Server

这两个组件构成

是一种 Java Web 应用程序

也是管理 Hadoop 作业的工作流调度系统

Oozie Server 运行在 Java servlet 容器中

并且需要使用关系型数据库

来存储调度以下信息:

1、工作流定义

2、当前所运行的工作流实例

(包括实例的状态和变量)

管理 Hadoop 作业的工作流调度系统——Oozie

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 还提供了一些恢复执行的策略。


Oozie 的三层结构:


Workflow:工作流,用以顺序执行流程节点。Oozie 的工作流必须是一个 DAG(有向无环图)。

管理 Hadoop 作业的工作流调度系统——Oozie


Coordinator:用以定时触发 Workflow,多个 Workflow 可以组成一个 Coordinator,可以把前几个 Workflow 的输出作为后一个 Workflow 的输入,也可以定义 Workflow 的触发条件,来做定时触发。

管理 Hadoop 作业的工作流调度系统——Oozie


Bundle: 是对一堆 Coordinator 的抽象,用以绑定多个 Coordinator。

管理 Hadoop 作业的工作流调度系统——Oozie


如何检测任务是否完成

Oozie 通过两种不同的方式来检测任务是否完成——那就是回调轮询


当 Oozie 启动任务后,它会为任务提供唯一的回调 URL,然后任务会在完成的时候发送通知给特定的 URL。在任务无法触发回调URL的情况下,Oozie 可以对计算或处理任务进行轮询,从而保证任务的完成。当然,Oozie 也可以自定义扩展任务类型。

管理 Hadoop 作业的工作流调度系统——Oozie

长|按|二|维|码|关|注

获取更多产品介绍及业界动态

管理 Hadoop 作业的工作流调度系统——Oozie研发云微信公众号
移动Labs公众号

 研·发·云


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《管理 Hadoop 作业的工作流调度系统——Oozie》的版权归原作者「研发云」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注研发云微信公众号

研发云微信公众号:cmcc_yfy

研发云

手机扫描上方二维码即可关注研发云微信公众号

研发云最新文章

精品公众号随机推荐