2013-12-09 26 views
3

我有運行作爲調用worflow協調一個Oozie的工作,在協調有其採用協調EL功能,像這樣的一些配置屬性 -oozie:如何在相應的工作流中使用oozie coodinator屬性?

$ {} 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函數,這樣做的最好方法是什麼,我基本上對automatin感興趣g協調員觸發此工作流程失敗。請以最小的變化建議最好的方法。

回答

0

您確定可以在配置文件中使用oozie表達式嗎?

當我需要手動運行工作流時,我在配置文件中定義一個屬性並將該工作流提交給oozie。

configuration.properties:

filename3=/user/john/data.tsv 

workflow.xml:

... 
<property> 
    <name>filename3</name> 
    <value>${filename3}</value> 
</property> 
... 

然後運行這個流程:

oozie -config configuration.properties -run 
1

您可以提交期間使用-D參數傳遞到工作流

oozie job -oozie <oozie URL> -config <configFile> -Dnameofproperty=value -submit 

可以使用String wf:conf(String name)功能在您的工作流程,以檢索值

1

您需要定義協調EL功能/特性在coordinator.xml和調用財產workflow.xml爲:

協調員

<action> 
     <workflow> 
       <app-path>${workflowPath}</app-path> 
     <configuration> 
      <property> 
        <name>nominalTime</name> 
        <value>${coord:nominalTime()}</value> 
      </property> 
     </configuration> 
     </workflow> 
</action> 

工作流程(例如蜂房)

<param>date=${nominalTime}</param>