2014-10-30 54 views
3

我有三個工作流XML文件,如WF1 WF2 WF3。我可以將所有這些工作流程鏈接到一個協調員中以執行下面的操作嗎? WF1是時間依賴性WF2是文件依賴性WF3是否依賴任何東西。Oozie協調員有多個工作流程

回答

4

不幸的是,一個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的確實提供了一種捆綁協調工作在一起。需要注意的是就業機會之間的依賴需要的文檔提到的由用戶管理:

捆綁是一種更高層次的Oozie的抽象,將一批一套協調的應用。用戶將能夠在捆綁級別啓動/停止/暫停/恢復/重新運行,從而實現更好,更簡單的操作控制。

更specififcally,所述Oozie的捆綁系統允許用戶定義 和執行一堆協調應用程序通常稱爲數據 管道。捆綁中的協調器 應用程序之間沒有明確的依賴關係。但是,用戶可以使用協調器應用程序的數據依賴關係來創建隱式數據應用程序管道。

+1

使用束實測值溶液。在bundle.xml中,我們可以有多個協調器作業,通過這些作業可以啓動多個工作流程。 – sunilsurana 2014-11-05 03:26:49

+0

捆綁式作業幫助一次性完成多個作業的生命週期管理。它不保證您自己的工作流程執行順序。在你的情況下,如果所需的執行順序是WF1-> WF2-> WF3,它將不起作用。讓我爲其他用戶編輯我的答案以獲得完整的圖片。 – 2014-11-06 22:14:48

+0

如何指示隱式依賴項? – kfkhalili 2016-04-12 17:33:08

1

不,你不能在單個協調器中鏈接所有三個工作流程,但可以爲每個工作流程創建單獨的協調器並使用該鏈接將它們鏈接起來。

要了解更多信息,coordinate jobs link

+0

我們不能使用@Clinton提到的子工作流嗎? – Kumar 2016-10-11 06:32:44

5

你不能在一個單一的協調鏈接所有三個工作流程。

取而代之的是,您可以使用oozie中的「subworkflow」概念將單獨的工作流xml(父)文件中的所有三個工作流鏈接起來(所有三個工作流文件WF1,WF2,WF3在此父級工作流文件中被稱爲子工作流)

然後,您可以使用您的coordinator xml文件安排父級工作流程文件,以便所有三個工作流程文件都可以鏈接。

參考: https://bhatnagarankitblog.wordpress.com/2013/11/09/multiple-executions/