如何 运行 oozie bundle 中的多个协调器

how to run multiple coordinators in oozie bundle

我对 oozie 包比较熟悉。我想 运行 多个协调器一个接一个地捆绑 job.My 要求是在一个协调器作业完成后将生成 _SUCCESS 文件,然后使用该 _SUCCESS 文件应该触发第二个协调器。我不知道该怎么做 that.For 我使用了数据依赖技术,该技术将跟踪先前协调器生成的输出文件。我正在分享一些我试过的代码。

假设有 2 个协调器 jobs:A 和 B.and 我只想触发 A coordinator.and 如果为协调器 A 生成了 _SUCCESS 文件,那么只有协调器 B 应该开始。

A - coordinator.xml

<workflow>

    <app-path>${aDir}/aWorkflow</app-path>      

</workflow>

这将调用相应的 workflow.and _SUCCESS 文件在 ${aDir}/aWorkflow/final_data/${date}/aDim 位置生成,因此我将此位置包含在 B协调员:

  <dataset name="input1" frequency="${freq}" initial-instance="${START_TIME1}" timezone="UTC">

     <uri-template>${aDir}/aWorkflow/final_data/${date}/aDim</uri-template>

  </dataset>

  <done-flag>_SUCCESS</done-flag>   

  <data-in name="coordInput1" dataset="input1">

      <instance>${START_TIME1}</instance>

  </data-in>

  <workflow>

     <app-path>${bDir}/bWorkflow</app-path>

  </workflow>

但是当我 运行 它第一个协调器自己被杀死,但是如果我 运行 单独地他们 运行ning successfully.i 不明白为什么这些都是被杀。 帮忙整理

我找到了简单的方法来做到这一点。我正在分享 solution.For 协调员 B coordinator.xml 我正在分享。 1)对于数据集实例,应该是第二个实例的开始时间,但不应该是特定协调器将被杀死的第一个 coordinator.otherwise 的时间实例。 2)如果你想 运行 多个协调器一个接一个,那么你也可以在 coordinator.xml 中包含控件。例如并发、超时或节流。有关这些控件的详细信息,您可以在 "apache oozie" 本书的第 6 章中找到。 3)在“”中我包含了最新的(0)它将在提到的输出路径中获取最新生成的文件夹。 4) 对于 "input-events" ,必须将其名称作为 ${coord:dataIn('coordInput1')} 的输入。否则 oozie 将不会考虑数据集。

30 1个 ${aimDir}/aDimWorkflow/final_data/${date}/aDim _成功 ${坐标:最新(0)}
${bDir}/b工作流程 input_files ${坐标:dataIn('coordInput1')}