我有下面的oozie工作流,假设我在执行操作“do\u task1”时手动终止了作业,但仍然希望在手动终止oozie作业(在运行操作“do\u task1”时)的情况下执行操作“do\u task2”。我该怎么做?
<workflow-app name="simple-Workflow"
xmlns="uri:oozie:workflow:0.4">
<start to = "Do_task1" />
<!—Step 1 -->
<action name = "Do_task1">
<hive xmlns = "uri:oozie:hive-action:0.4">
<job-tracker>xyz.com:8088</job-tracker>
<name-node>hdfs://rootname</name-node>
<script>hdfs_path_of_script/external.hive</script>
</hive>
<ok to = "Do_task2" />
<error to = "kill_job" />
</action>
<!—Step 2 -->
<action name = "Do_task2">
<hive xmlns = "uri:oozie:hive-action:0.4">
<job-tracker>xyz.com:8088</job-tracker>
<name-node>hdfs://rootname</name-node>
<script>hdfs_path_of_script/orc.hive</script>
</hive>
<ok to = "end" />
<error to = "kill_job" />
</action>
<kill name = "kill_job">
<message>Job failed</message>
</kill>
<end name = "end" />
</workflow-app>
2条答案
按热度按时间uz75evzq1#
一旦通过终止第一个操作终止oozie工作流,就不能重新启动它,除非在属性文件中将此属性设置为true。
如果已配置此属性,则在执行命令后:
oozie作业-重新运行作业ID
它将使用旧属性从“do\u task1”而不是“do\u task2”重新启动工作流。
或者另一种只执行第二个操作的方法是:set
然后再次运行工作流。
ru9i0ody2#
你可以触发特定的oozie动作。