Oozie工作流并行运行不同的表集

时间:2016-09-29 01:10:20

标签: oozie

我有3组不同的表格。第1组包含3个表,第2组包含4个表,第3组包含5个表。现在我希望所有这三组都应该在Oozie工作流程中并行启动(彼此独立)。

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

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

我希望以这样一种方式设置工作流,如果任何作业的任何一个作为任何一个集合的一部分失败,那么我希望其他集合继续,不应该因为失败的集合而失败或等待。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以做的是创建3个单独的工作流程并设置两者 每个作业操作的<error to=""><ok to="">参数到下一个作业,只是忽略任何错误并在作业中移动。

要使工作流程并行运行,您可以使用此处指定的分支:Oozie fork specification或者如果您安装了Falcon,只需同时制作3个Falcon进程。这应该为您提供所需的功能。

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