目前,我的 oozie 工作流程中有 6 个操作,如下所示。
MainJob1 完成所有第一个、第二个和第三个作业后应该并行运行。在 MainJob2 完成后,只有第二个和第三个作业应该并行运行。
有没有可能解决上述工作流执行方式?
<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1">
....
<decision name="execution-mode-decision">
<switch>
<case to="MainJob1">${executionMode eq "DEFAULT"}</case>
<case to="MainJob2">${executionMode eq "INVALID"}</case>
<default to="MainJob1" />
</switch>
</decision>
<action name="MainJob1">
<map-reduce>
.......
</map-reduce>
<ok to="fork1"/>
<error to="kill"/>
</action>
<action name="MainJob2">
<map-reduce>
......
</map-reduce>
<ok to="fork2"/>
<error to="kill"/>
</action>
...
<fork name="fork1">
<path start="firstparalleljob"/>
<path start="secondparalleljob"/>
<path start="thirdparalleljob"/>
</fork>
<fork name="fork2">
<path start="secondparalleljob"/>
<path start="thirdparalleljob"/>
</fork>
<action name="firstparallejob">
<map-reduce>
...........
<ok to="joining"/>
<error to="kill"/>
</action>
<action name="secondparalleljob">
<map-reduce>
........
</map-reduce>
<ok to="joining"/>
<error to="kill"/>
</action>
<action name="thirdparalleljob">
<map-reduce>
........
</map-reduce>
<ok to="joining"/>
<error to="kill"/>
</action>
<join name="joining" to="emailFailure"/>
...
</workflow-app>