我有一个作为协调器运行的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函数,做这件事的最佳方法是什么,我主要感兴趣的是自动处理由协调器触发的工作流故障。请建议最好的方式去做它与最小的变化。
3条答案
按热度按时间af7jpaap1#
您可以在提交期间使用将参数传递给工作流
-D
```oozie job -oozie -config -Dnameofproperty=value -submit
hvvq6cgz2#
您确定可以在配置文件中使用oozie表达式吗?
当我需要手动运行工作流时,我在配置文件中定义了一个属性,并将该工作流提交给oozie。
配置.属性:
工作流.xml:
然后运行此工作流:
5sxhfpxr3#
您需要在coordinator.xml中定义coordinator el函数/属性,并在workflow.xml中调用该属性,如下所示:
协调员
工作流(配置单元示例)