我有一个 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/

10-13 07:35