Oozie 分布式调度器

Oozie distributed scheduler

我正在浏览 oozie 文档,我了解到它是一个分布式工作流调度程序。

是否能够在已提交 oozie 作业的集群上调度工作流?换句话说,oozie 能够在集群中的任何随机节点上调度作业或 运行 脚本,它是否能够在客户端机器/边缘节点/其他集群(例如 distcp)上采取行动。

是的,可以做到,它是一项 data-aware 服务,用于协调 Hadoop 上作业 运行 之间的依赖关系。 其中包括 HDFS、Pig、Hive、Python、Shell、Map Reduce Java、SSH、DISTCP、也称为 UDF 的自定义操作执行器。

Ref: BLOG 你可以查看有用的示例,还有很多,其中描述了更多关于使用的信息

Oozie 本身 分发; "edge node" 上的服务 运行(具有所有 Hadoop 库和配置但不 运行 作业或存储 HDFS 文件的机器)并使用数据库,通常 MySQL, 存储所有作业定义和状态。

Oozie 协调器 定义何时以及如何触发工作流。

Oozie 工作流程 是有向无环图 (DAG),即简单步骤链 - 一些步骤可以并行执行,步骤链接可以是有条件的,但没有循环 (这就是 A 在 DAG 中的意思).

一些琐碎的步骤(例如发送 e-mail)由 Oozie 直接完成,但所有其余步骤都被转换为 YARN 作业 - 然后 YARN 运行s 这些作业以随机模式。这些作业可以是 "distributed",也可以不是(例如 Shell Action 被翻译成单个 Mapper,运行 是 Oozie bootstrap JAR,运行 是一个 shell 解释器,运行 是提供的脚本——最后它只是 1 个进程的并行处理...呃)

请注意,单个 Oozie 服务可以在 多个集群 上 运行 作业,这就是为什么每个工作流都必须指定一个 NameNode 和一个 JobTracker (a ResourceManager实际上是用YARN)

您可能想浏览那个包含 14 章的古老但全面的教程: http://hadooped.blogspot.fr/2013/06/apache-oozie-part-1-workflow-with-hdfs.html