2016-06-05 2 views
0

Я пытаюсь установить тайм-аут на рабочий процесс, выполняемый в oozie, который не работает через некоторое время с момента запуска рабочего процесса.
oozie - Как установить тайм-аут на рабочий процесс?

Например, можно использовать sla:should-end в coordinator.xml для действия/процесса или указать sla:should-end в workflow.xml для всего процесса.
Но проблема SLA отправляет только электронную почту. То, что я хочу, просто проваливается через некоторое время (с начала запуска).
Возможно ли это? Любой образец кода поможет.

ответ

0

Я не знаю никакого прямого решения для этого в Оози или в Пряжа. Существует Yarn ticket, что обеспечит удобное решение.

Пока это не реализовано, вы можете попробовать что-то вроде этого:

  • добавить FS touchz action в начале процесса создания файла (например,/TMP/WF_ID)
  • добавить вилку в рабочий процесс после того, как файл создается
  • один из путей, должны быть действия оболочки, который проверяет существование файла с HDFS ДФС -ls/TMP/WF_ID до тайм-аута не будет достигнута (см this post для некоторых намеков)
  • другой путь - источник l логика рабочего процесса и действие удаления FS в конце для удаления файла в/tmp
  • действие оболочки должно убить рабочий процесс, если он истечет до удаления файла из HDFS. Если файл будет удален до тайма-аута будет достигнут, то сценарий оболочки должен прекратить нормально, позволяя продолжать рабочий

Это довольно уродливый обходной путь проблемы, но я не могу думать о более чистом растворе при момент.