Как запланировать задание OOZIE, если в данной папке произошли какие-либо изменения?

Я хочу запланировать задание oozie на основе папки, т.е.

У меня есть папка в папке HDFS, и каждый день в эту папку будет добавляться один файл в формате date.txt (exp: 20160802.txt).

Я хочу запланировать пакет OOZIE, если какой-либо новый файл будет добавлен в эту папку.

Пожалуйста, помогите мне в этом, как я могу запланировать в моем сценарии использования.

Заранее спасибо.


person Sai    schedule 02.08.2016    source источник


Ответы (1)


Задания рабочего процесса Oozie выполняются на основе регулярных интервалов времени и/или доступности данных. А в некоторых случаях они могут быть вызваны внешним событием. Координатор вступает в игру здесь.

Вы можете использовать координатора oozie для проверки зависимости данных и запуска рабочего процесса oozie с помощью координатора функции EL В вашем случае каждый день ваш файл добавляется в hdfs с отметкой времени. Таким образом, с набором данных вы можете достичь.

Из документации

Пример. Набор данных создается один раз в день в 00:15 PST8PDT, а флаг выполнения установлен на пустой:

  <dataset name="logs" frequency="${coord:days(1)}"
           initial-instance="2009-02-15T08:15Z" timezone="America/Los_Angeles">
    <uri-template>
      hdfs://foo:9000/app/logs/${market}/${YEAR}${MONTH}/${DAY}/data
    </uri-template>
    <done-flag></done-flag>
  </dataset>
The dataset would resolve to the following URIs and Coordinator looks for the existence of the directory itself:

  [market] will be replaced with user given property.  hdfs://foo:9000/usr/app/[market]/2009/02/15/data
  hdfs://foo:9000/usr/app/[market]/2009/02/16/data
  hdfs://foo:9000/usr/app/[market]/2009/02/17/data

Пожалуйста, прочтите документацию, там много примеров. Это хорошо.

1.О координаторах

2.Набор данных

person Taha Naqvi    schedule 02.08.2016