我有三个工作流 XML 文件,例如 WF1 WF2 WF3。我可以将所有这些工作流程链接到一个协调员中以执行以下操作吗?WF1 是时间相关 WF2 是文件相关性 WF3 是无任何相关性。
3 回答
您不能在单个协调器中链接所有三个工作流。
取而代之的是,您可以使用 oozie 中的“子工作流”概念将所有三个工作流链接到一个单独的工作流 xml(父)文件中。(所有三个工作流文件 WF1、WF2、WF3 在此父工作流文件中都被称为子工作流)
然后,您可以使用协调器 xml 文件来安排父工作流文件,以便链接所有三个工作流文件。
参考: https ://bhatnagarankitblog.wordpress.com/2013/11/09/multiple-executions/
不幸的是,一个 oozie 协调员只能有一个动作/工作流程。它在 xml 模式中定义:Oozie 4.01 CoordinatorFunctionalSpec.html#Oozie_Coordinator_Schema_0.4
<xs:complexType name="COORDINATOR-APP">
<xs:sequence>
...
<xs:element name="action" type="coordinator:ACTION" minOccurs="1" maxOccurs="1" />
...
</xs:complexType>
然而,正如请求者在评论部分指出的那样,Oozie 确实提供了一种将协调器作业捆绑在一起的方法。请注意,作业之间的依赖关系需要由用户管理,如文档所述:
Bundle 是一个更高级别的 oozie 抽象,它将批处理一组协调器应用程序。用户将能够在捆绑级别启动/停止/暂停/恢复/重新运行,从而实现更好、更轻松的操作控制。
更具体地说,oozie Bundle 系统允许用户定义和执行一组通常称为数据管道的协调器应用程序。捆绑中的协调器应用程序之间没有显式依赖关系。但是,用户可以使用协调器应用程序的数据依赖性来创建隐式数据应用程序管道。
不,您不能在单个协调器中链接所有三个工作流,但您可以为每个工作流创建单独的协调器并使用捆绑包链接它们。
要了解更多信息,请协调工作链接