我在乌兹包里更新鲜。我想在包中一个接一个地运行多个协调器,job.My要求是在完成一个协调器作业后生成_SUCCESS文件,然后使用该_SUCCESS文件触发第二个协调器。我不知道如何做that.For,因为我使用了数据依赖技术,它将跟踪以前协调器生成的输出文件。我在分享一些我尝试过的密码。
假设有两个协调器作业:a和B.and,如果为协调器A生成的_SUCCESS文件生成,我只想触发A coordinator.and,那么只有协调员B才应该开始。
A- coordinator.xml
<workflow>
<app-path>${aDir}/aWorkflow</app-path>
</workflow>
这将调用在${ workflow.and }/aWorkflow/final_ _SUCCESS /${date}/aDim位置生成的相应的_SUCCESS文件,因此我将该位置包含在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>
但是当我第一次运行它时,协调员会被杀死,但是如果我单独运行,他们就会成功地运行,我不明白为什么这些都会被杀死。帮助理清
发布于 2015-11-18 06:56:25
我想出个简单的办法。我分享solution.For协调员B coordinator.xml我分享。1)对于数据集实例,应该是第二个实例的启动时间,而不应该是第一个coordinator.otherwise的时间实例,特定的协调器会被杀死。2)如果您想一个接一个地运行多个协调器,那么您也可以在coordinator.xml中包含控件。例如并发性、超时或节气门。有关这些控件的详细信息,您可以在"apache“书的第六章中找到。3)在“我包含了最新的(0)”中,它将在上述输出路径中接受最新生成的文件夹。4)对于“输入事件”,必须将其名称作为${coord:dataIn(‘coordInput1’)}的输入,.otherwise oozie将不考虑dataset。
30 1 ${aimDir}/aDimWorkflow/final\_data/${date}/aDim \_SUCCESS ${coord:latest(0)}
${bDir}/bWorkflow input\_files ${coord:dataIn('coordInput1')}
https://stackoverflow.com/questions/33687299
复制相似问题