Введите условия для выполнения действия координатора с помощью Oozie - PullRequest
0 голосов
/ 25 сентября 2019

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

  <datasets>
    <dataset name="dinput" frequency="${coord:days(1)}"
             initial-instance="${start_date}" timezone="UTC">
      <uri-template>myInputFolder</uri-template>
      <done-flag></done-flag>
    </dataset>
  </datasets>
  <input-events>
    <data-in name="input" dataset="dinput">
      <instance>${coord:current(0)}</instance>
    </data-in>
  </input-events> 

Может кто-нибудь, пожалуйста, подскажите мне, как это сделать.

1 Ответ

0 голосов
/ 25 сентября 2019

Цель тегов Oozie <dataset> и <input-events> состоит в том, чтобы обрабатывать общий случай, когда данные поступают через определенный интервал и попадают в структуру каталогов с разделением по дате.Именно здесь Oozie работает лучше всего.

Если это не подходит для вашего варианта использования, я бы предложил написать код для проверки ваших файлов и запустить его в действии Oozie с использованием shell или javaтип.Я думаю, что это действие может отправить код ошибки в Oozie, чтобы остановить рабочий процесс, если ваши файлы не существуют, и это действие будет предшествовать реальной логике вашего рабочего процесса.

...