我有3组不同的表格。第1组包含3个表,第2组包含4个表,第3组包含5个表。现在我希望所有这三组都应该在Oozie工作流程中并行启动(彼此独立)。
任何人都可以建议相同的示例工作流程。
set1 set2 set3
Job11 job21 job31
job12 job22 job32
job13 job23 job33
job24 job34
job35
我希望以这样一种方式设置工作流,如果任何作业的任何一个作为任何一个集合的一部分失败,那么我希望其他集合继续,不应该因为失败的集合而失败或等待。
答案 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进程。这应该为您提供所需的功能。
唯一的问题是您无法真正跟踪任何作业是否失败。