我有一个 oozie 作业作为协调器运行,它调用 worflow ,在协调器中有一些使用协调器 EL 函数的配置属性,如下所示 -
${oozieAppDir}/copyLogs.wf.xml
<configuration>
<property>
<name>filename3</name>
<value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -3, 'HOUR'), 'MM')}-${coord:formatTime(coord:dateOffset(coord:nominalTime(), -3, 'HOUR'), 'dd')}-${coord:formatTime(coord:dateOffset(coord:nominalTime(), -3, 'HOUR'), 'yyyy')}-${coord:formatTime(coord:dateOffset(coord:nominalTime(), -3, 'HOUR'), 'HH')}</value>
</property>
</configuration>
当这个作业的一个实例被杀死时,我想从命令行单独重新运行工作流,但它给出了错误,因为它使用了在协调器中定义的属性,我无法在工作流中添加这些属性,因为它使用了协调器 EL 函数,此外,我没有找到相应的 wf:EL 函数,最好的方法是什么,我基本上对自动化由协调器触发的这个工作流的失败感兴趣。请建议以最少的更改进行的最佳方法。
最佳答案
您需要在 coordinator.xml 中定义协调器 EL 函数/属性,并在工作流.xml 中将该属性调用为:
协调员
<action>
<workflow>
<app-path>${workflowPath}</app-path>
<configuration>
<property>
<name>nominalTime</name>
<value>${coord:nominalTime()}</value>
</property>
</configuration>
</workflow>
</action>
工作流(Hive 示例)
<param>date=${nominalTime}</param>
关于hadoop - oozie : How to use oozie coodinator properties in corresponding workflow?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20464184/