gpt4 book ai didi

hadoop - 是否可以只用一个协调器启动一些 oozie 工作流?

转载 作者:可可西里 更新时间:2023-11-01 14:46:58 26 4
gpt4 key购买 nike

我不确定如何使用好的工具来完成我想要的。

我有很多工作流可以依赖也可以不依赖。

例子:

  1. /工作流程1
    • /workflow.xml
    • /job.properties
  2. /工作流程2
    • /workflow.xml
    • /job.properties
  3. ....

我认为我们可以拥有一个可以启动(在某些数据条件下)所有工作流的协调器。但我开始认为这不是好的做法。

我们是否应该为每个工作流程配备一名协调员,并提供所有执行条件 + 一个启动所有协调员的 bundle ?像那样:

  1. /wf1
    • /workflow.xml
    • /job.properties
    • /协调器.xml
  2. /wf2
    • /workflow.xml
    • /job.properties
    • /协调器.xml
  3. /bundle.xml

或者一个协调员可以启动所有工作流(他们可以依赖也可以不依赖)?

  1. /wf1
    • /workflow.xml
    • /job.properties
  2. /wf2
    • /workflow.xml
    • /job.properties
  3. /coordinator.xml

最佳答案

这取决于。如果 wf1 和 wf2 在逻辑上相关,具有相同的频率并且具有共同的数据集依赖性,则可以将它们由一个协调器放置(并同时或一个接一个地运行它们)。但如果不是,最好将它们放在单独的协调器中。

您可以使用sub-workflow 功能从一个工作流启动多个工作流:

<workflow-app name="root-workflow" xmlns="uri:oozie:workflow:0.4">
<start to="run-wf1"/>
<action name="run-wf1">
<sub-workflow>
<app-path>${appPath}/wf1.xml</app-path>
<propagate-configuration/>
</sub-workflow>
<ok to="run-wf2"/>
<error to="kill"/>
</action>
<action name="run-wf2">
<sub-workflow>
<app-path>${appPath}/wf2.xml</app-path>
<propagate-configuration/>
</sub-workflow>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>

如果您想同时运行它们而不是使用 fork 。

关于hadoop - 是否可以只用一个协调器启动一些 oozie 工作流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31583408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com