2016-09-29 77 views
0

我有3組不同的表。第一組包含3個表格,第二組包含4個表格,第三組包含5個表格。現在我希望所有這3套應該在Oozie工作流程中並行開始(彼此獨立)。Oozie工作流程並行運行不同的表集

任何人都可以提供相同的示例工作流程。

set1   set2    set3 
Job11  job21    job31 
job12  job22    job32 
job13  job23    job33 
      job24    job34 
           job35 

我想以這樣的方式,如果有任何的工作作爲任何對於任何一組部分失敗,那麼我想與其它組繼續,不應該失敗或等待,因爲失敗組的工作流程設置。

回答

0

您可以使用Oozie工作流中的Fork和Join控制節點。如果您想要並行執行所有表的操作,請爲每個表編寫操作並將其添加到Fork節點中,或者如果您想對它進行並行設置,可以這樣做。 Apache的Oozie的文檔

工作流程示例:

<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.5"> 
    ... 
    <fork name="[FORK-NODE-NAME]"> 
     <path start="[NODE-NAME]" /> 
     ... 
     <path start="[NODE-NAME]" /> 
    </fork> 
    ... 
    <join name="[JOIN-NODE-NAME]" to="[NODE-NAME]" /> 
    ... 
</workflow-app> 

您可以在這裏找到更多的信息:Fork and Join Control Nodes

+0

我想要一個工作流程設置,使得如果任何作業失敗作爲任何一個集合的任何一部分,那麼我希望其他集合繼續,並且不應該因失敗集合而失敗或等待。 –

+0

如果您有任何困難,我建議您自己試試並回來。 – YoungHobbit

0

你可以做的就是創建3個獨立的工作流程,並同時設置各自的 <error to=""><ok to="">參數將工作行爲轉移到下一份工作上,而忽略了任何錯誤並轉移了工作。

要使工作流程並行運行,您可以使用此處指定的分支:Oozie fork specification或者如果您安裝了Falcon,則只需製作3個同時計劃的Falcon進程。這應該爲您提供所需的功能。

唯一的問題是你無法真正地跟蹤任何作業是否失敗。