решение узел ... в зависимости от global-prop. Я хочу, чтобы глобальный проп значение зависит от результатов суб-процесса
¤ Комментарий # 1: от общих принципов, было бы больше смысла иметь решение зависит от как результат и глобальное (и постоянное) свойство. Использование логического выражения EL, например, (см. Некоторые примеры there).
¤ Комментарий # 2: есть много путаницы в Oozie documentation между свойства как коротка для Hadoop свойств, которые передаются на рабочие места ПРЯЖИ; и Workflow свойство также называют параметров, которые являются EL переменными (называемыми свойства снова в документации Е.Л., блин), которые используются для определения значений свойств/аргументов/и т.д.. но не передается на задания YARN.
То, как вы используете свой «глобальный прокси», должно быть определено в разделе <parameters>
вместо <global>
.
¤ Комментарий № 3: Параметры и свойства AFAIK Oozie неизменяемы; Вы можете установить их значение только один раз, используя ...
- параметры> жестко закодированные строковые литералы
- свойства> литералы и/или параметры, и/или функции EL
Существует также вопрос о масштабе - то есть когда «глобальное» свойство и «локальное» свойство (определенное внутри действия суб-рабочего потока, опять из строки/параметра/EL fct) имеют то же точное имя, «местный» имеет преимущество.
¤ Комментарий # 4: есть способ, чтобы получить некоторую информацию о хСтатус от действия Java/Свиньи/Shell, используя <capture-output>
процедуру (см в Oozie документации классической example) но вы можете получить это от такой же Рабочий процесс. С Sub-Workflow, выполненным в отдельном контексте с отдельным идентификатором, вам не повезло.
¤ Soooo ...когда все остальное потерпело неудачу, единственная надежда - пойти назад к основам. Когда-либо слышал об этом пустом файле HDFS с именем _SUCCESS
, который создает Pig при завершении, так что дальнейшая обработка может запускаться автоматически (например, координатором oozie)?
Если Суб-Workflow каким-то образом создает HDFS файл с заранее определенным именем, то решение может использовать HDFS EL function проверить, был ли создан этот файл или нет:
<case to="Happy">${fs:exists(concat(wf:conf("status.dir"),"/__HAPPY"))}</case>