Триггер координатора oozie когда любой файл в пути hdfs
Я пытаюсь создать координатор oozie, который выполняет рабочий процесс при добавлении любого файла в путь HDFS, но я нашел только примеры, запускающие рабочий процесс с указанным файлом. Могу ли я использовать что-то вроде регулярного выражения в флаге done?), Любое предложение??:
<coordinator-app name="coordinator_test" frequency="${frequency}" start="${start}" end="${end}" timezone="${timezone}" xmlns="uri:oozie:coordinator:0.1">
<controls>
<concurrency>1</concurrency>
<execution>FIFO</execution>
<throttle>5</throttle>
</controls>
<datasets>
<dataset name="input1" frequency="2" initial-instance="2015-09-23T00:00Z" timezone="UTC">
<uri-template>${nameNode}/user/oozie/test/created</uri-template>
<done-flag>*</done-flag>
</dataset>
</datasets>
<input-events>
<data-in name="coordInput1" dataset="input1">
<start-instance>${coord:current(-1)}</start-instance>
<end-instance>${coord:current(0)}</end-instance>
</data-in>
</input-events>
<action>
<workflow>
<app-path>${nameNode}/user/oozie/workflow.xml</app-path>
</workflow>
</action>
</coordinator-app>
1 ответ
ОБНОВИТЬ:
Для разных типов файлов я бы указывал разные наборы данных с разными шаблонами uri и указывал там разные имена / типы файлов. Они могут указывать на одно и то же местоположение, а имя файла (с символами подстановки) будет указывать на другой тип источников.
Что-то вроде: ${hdfs}/ Students *
$ {HDFS} / учителей *
И используйте узел контроля принятия решений для обработки данных с помощью правильного сценария.
Попробуй с
<done-flag></done-flag>
чем это срабатывает, когда путь существует.
done-flag: Готовый файл для набора данных. Если флаг done-flag не указан, Oozie настраивает Hadoop для создания файла _SUCCESS в выходном каталоге. Если флаг выполнения установлен пустым, то Координатор ищет существование самого каталога.