如何 运行 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')}
我对 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')}