У меня есть три XML-файла Workflow, такие как WF1 WF2 WF3. Могу ли я связать все эти рабочие процессы в одном координаторе для следующих действий? WF1 зависит от времени. WF2 является зависимым от файла. WF3 не имеет никакого отношения ни к чему.Координатор Oozie, имеющий несколько рабочих процессов
ответ
К сожалению, один координатор oozie может иметь только одно действие/рабочий процесс. Он определяется в XML-схеме: Oozie 4.01 CoordinatorFunctionalSpec.html#Oozie_Coordinator_Schema_0.4
<xs:complexType name="COORDINATOR-APP">
<xs:sequence>
...
<xs:element name="action" type="coordinator:ACTION" minOccurs="1" maxOccurs="1" />
...
</xs:complexType>
Однако, как запрашивающие указан в разделе комментариев, Oozie действительно обеспечивает способ для объединения рабочих мест координатора вместе. Обратите внимание, что зависимость между заданиями должна управляться пользователем по указанному документу:
Bundle - это абстракция oozie более высокого уровня, которая будет выполнять набор приложений-координаторов. Пользователь сможет запускать/останавливать/приостанавливать/возобновлять/повторять на уровне пучка, что обеспечивает более легкое и оперативное управление.
Более конкретно система oozie Bundle позволяет пользователю определять и выполнять кучу приложений-координаторов, которые часто называют конвейером данных . Не существует явной зависимости между координаторами приложений в пакете. Тем не менее, пользователь может использовать данные зависимостей приложений-координаторов для создания неявного потока данных .
Нет, вы не можете связать все три рабочих процесса в одном координаторе, но вы можете создать отдельный координатор для каждого рабочего процесса и связать их с помощью пакета.
Чтобы узнать больше, coordinate jobs link
Не можем ли мы использовать вспомогательный поток, как указано в @Clinton? – Kumar
Вы не можете связать все три рабочие процессы в одном координатора.
Вместо этого вы можете связать все три рабочих процесса в отдельном XML-файле рабочего процесса с использованием концепции «subworkflow» в oozie. (Все три файла рабочего процесса WF1, WF2, WF3 упоминаются как вспомогательные рабочие процессы в этом родительском файле рабочего процесса)
Затем вы можете использовать файл координатора xml для планирования родительского файла рабочего процесса, чтобы связать все три файла рабочего процесса.
Ссылка: https://bhatnagarankitblog.wordpress.com/2013/11/09/multiple-executions/
Найдено решение с использованием пучка. В bundle.xml мы можем иметь несколько заданий координатора, с помощью которых можно запускать несколько рабочих процессов. – sunilsurana
Связанная работа помогает управлять жизненным циклом нескольких заданий одним выстрелом. Он не гарантирует выполнение вашего рабочего процесса сам по себе. В вашем случае это не будет работать, если желаемая последовательность выполнения WF1 -> WF2 -> WF3. Позвольте мне отредактировать мой ответ для других пользователей, чтобы получить полную картину. –
Как указывать неявную зависимость? – kfkhalili