2016-09-29 4 views
0

У меня есть 3 разных набора таблиц. Первый набор содержит 3 таблицы, второй набор содержит 4 таблицы, а третий набор содержит 5 таблиц. Теперь я хочу, чтобы все эти 3 набора должны начинаться параллельно (независимо друг от друга) в рабочем процессе Oozie.Рабочий процесс Oozie для запуска разных наборов таблиц параллельно

Может ли кто-нибудь предложить образец рабочего процесса для него.

set1   set2    set3 
Job11  job21    job31 
job12  job22    job32 
job13  job23    job33 
      job24    job34 
           job35 

Я хочу установку рабочего процесса таким образом, что если задание не в рамках какого-либо для любого набора, то я хочу другие наборы для продолжения и не отменялся или ждать из-за неудачный набор ,

ответ

0

Вы можете использовать узлы управления Fork и Join из рабочего процесса Oozie. Если вы хотите выполнять действия для всех параллельных таблиц, напишите действие для каждой таблицы и добавьте их в узел Fork. Если вы хотите распараллелить его, установите его таким образом.

Пример Workflow от Apache Oozie Документация:

<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.5"> 
    ... 
    <fork name="[FORK-NODE-NAME]"> 
     <path start="[NODE-NAME]" /> 
     ... 
     <path start="[NODE-NAME]" /> 
    </fork> 
    ... 
    <join name="[JOIN-NODE-NAME]" to="[NODE-NAME]" /> 
    ... 
</workflow-app> 

Вы можете найти более подробную информацию здесь: Fork and Join Control Nodes

+0

Я хочу, чтобы настройка рабочего процесса была такой, что если какое-либо задание терпит неудачу как часть любого для любого из них, то я хочу, чтобы остальные наборы продолжались и не должны терпеть неудачу или ждать из-за неудавшегося набора. –

+0

Я предлагаю вам попробовать попробовать сам и вернуться, если у вас возникнут трудности. – YoungHobbit

0

Что вы можете сделать, это создать 3 отдельных рабочих процессов и установить оба параметра каждого <error to=""> и <ok to=""> работа на следующую работу, просто игнорируя любые ошибки и перемещаясь по заданиям.

Чтобы запустить рабочие процессы параллельно, вы можете использовать вилку, как указано здесь: Oozie fork specification, или если у вас есть установленный Falcon, просто выполните 3 процесса Falcon, которые запланированы в одно и то же время. Это должно предоставить вам необходимую функциональность.

Единственная проблема заключается в том, что у вас нет способа действительно отслеживать, не срабатывало ли какое-либо из заданий или нет.

Смежные вопросы