2013-12-09 5 views
3

У меня есть работа oozie работает в качестве координатора, который называет worflow, в координаторе есть некоторые свойства конфигурации, которая использует функцию координатора 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, что является лучшим способом сделать это, меня в основном интересует автомат 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> 
Смежные вопросы