Хобрук: Ваш путь к мастерству в программировании

Как заставить работу oozie запускаться, когда файл успеха присутствует в aws S3

Я работаю с oozie для выполнения операции передачи данных HDFS, требование состоит в том, чтобы запускать задание рабочего процесса oozie всякий раз, когда в корзине aws S3 доступны данные. Я думаю о том, чтобы сохранить файл успеха вместе с файлами данных в моей корзине S3, но я не уверен, как заставить координатора oozie периодически читать из S3, чтобы проверить, доступен ли файл успеха или нет. Было бы здорово, если бы кто-нибудь мог предоставить образец coordinator.xml для того же самого.


  • Вы можете вызвать REST API oozie для запуска задания из триггера AWS Lambda, который будет вызываться при событии загрузки s3. 17.04.2017
  • Как создать API-интерфейс oozie REST для задания, которое в настоящее время выполняется на координаторе по времени? 17.04.2017

Ответы:


1

Можете ли вы попробовать следующее: -

<coordinator-app name="FILE_CHECK" frequency="1440" start="2017-04-17T00:00Z" end="2018-04-17T00:00Z" timezone="UTC" xmlns="uri:oozie:coordinator:0.1">

<datasets>
      <dataset name="datafile" frequency="60" initial-instance="2017-04-16T00:00Z" timezone="UTC">
         <uri-template>s3n://mybucket/a/b/${YEAR}/${MONTH}/${DAY}</uri-template>
         <done-flag><flag to check></done-flag>
      </dataset>
   </datasets>
   <input-events>
      <data-in name="coorddatafile" dataset="datafile">
          <instance>${coord:current(0)}</start-instance>
      </data-in>
   </input-events>
   <action>
      <workflow>
         <app-path><workflow_path></app-path>
          <configuration>
                <property>
                    <name>fileDirectory</name>
                    <value>${coord:dataIn('coorddatafile')}</value>
                </property>
          </configuration>
      </workflow>
   </action>     
</coordinator-app>

Вы также можете обратиться: -https://community.cloudera.com/t5/Batch-Processing-and-Workflow/Getting-Oozie-Coordinator-datasets-working-with-S3-after-a-lost/td-p/27233

17.04.2017
  • Он проверит наличие флага, а затем запустит задание. 17.04.2017
  • Что такое содержимое флага, в некоторых примерах это файл (файл .bat). 17.04.2017
  • Во многих сценариях это файл _SUCCESS (также может быть 0 байт), который создается другим процессом hadoop при успешном завершении задания ранее. Тег ‹done-flag› проверяет наличие файла в папке. Содержание не имеет значения. 17.04.2017
  • например: ‹done-flag›success.bat‹/done-flag› Итак, это похоже на то, когда этот файл присутствует, запускает задание? Кроме того, еще одно сомнение заключается в значении uri-template. В большинстве примеров, которые я видел, шаблон uri присутствует в формате каталога, оканчивающемся на $year/$month/$day. 1.) Разве это не может быть простой файл, например: ‹uri-template›s3://mybucket/my_file.csv‹/uri-template›? 2.) Если мне нужен только триггер в качестве файла успеха (success.bat) в s3, может ли uri-template быть пустым в этом сценарии, а флаг готовности может иметь полный адрес файла s3? 17.04.2017
  • Да, вы абсолютно правы, когда файл присутствует, запускайте задание. Доступно много примеров, потому что они опрашивают конкретный каталог HDFS в разное время. Каждый день/час он должен опрашивать этот конкретный каталог час/день для файла. ‹uri-template› — это, по сути, место, где oozie опрашивает наличие файла, поэтому пустая строка не поможет. Например: - ‹uri-template›s3://mybucket‹/uri-template› ‹done-flag›my_file.csv‹/done-flag› 17.04.2017
  • Спасибо. Кроме того, почему требуются входные события? В моем текущем координаторе.xml я его не использую, и при проверке oozie -info с помощью job_id координатора он показывает успешные запуски заданий. Но, как и в моем workflow.xml, я просто отправлял электронное письмо всякий раз, когда оно срабатывало, но я не получил никакого электронного письма, это из-за того, что не используются ‹input-events›, что рабочий процесс совсем не Бег? 17.04.2017
  • Да, вам нужно включить его. Входные события приложения-координатора определяют входные условия, необходимые для выполнения действия координатора. В текущей спецификации входные события ограничены доступностью экземпляров набора данных. 17.04.2017
  • @DeepanRam Какие настройки необходимо выполнить, чтобы oozie был настроен для чтения ведра s3? 01.06.2018
  • @AkashTantri вам нужно указать местоположение s3 с префиксом s3://n вместо местоположения hdfs 01.06.2018
  • Новые материалы

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..