我有下面的Oozie工作流程,假设我在执行操作"Do_task1“时手动终止了作业,但我仍然想执行操作"Do_task2”,尽管手动终止了oozie作业(当操作"Do_task1“正在运行时)。我该怎么做呢?
<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>发布于 2019-01-31 23:26:50
一旦通过终止第一个操作终止了oozie工作流,它就不能重新启动,除非在属性文件中将此属性设置为true。
oozie.wf.rerun.failnodes=true 如果已配置此属性,则在执行命令后:
oozie job -rerun jobId
它将使用旧属性从"Do_task1“而不是"Do_task2”重新启动工作流。
或者只执行第二个操作的另一种方法是: set
<start to = "Do_task2"/> 并再次运行工作流。
发布于 2020-10-07 00:02:50
您可以触发特定的oozie操作。
oozie job -oozie http://localhost:8080/oozie -rerun <FailedOrKilledWorkflowId> -action <actionName or actionId>https://stackoverflow.com/questions/54446395
复制相似问题