2016-09-29 78 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进程。这应该为您提供所需的功能。

唯一的问题是你无法真正地跟踪任何作业是否失败。