2017-02-17 25 views
0

Что я хотел бы сделать, это сделать метаданные рабочих процессов и работы, такие как дата начала, дата окончания и статус, доступные в таблице улей, которые будут использоваться инструментом BI для визуализации. Я хотел бы иметь возможность контролировать, например, если определенный рабочий процесс не работает в определенные часы, уровень успеха, ...Как выявить метаданные работы Hadoop и рабочего процесса с использованием Hive

Для этого мне нужен доступ к тем же данным, которые Hue может отображать в браузере работы и Oozie панель приборов. Например, я ищу специально для рабочих процессов: имя, податель заявки, статус, время начала и окончания. Причина, по которой я хочу это, заключается в том, что, на мой взгляд, этому инструменту не хватает общего обзора и хорошего поиска. Идея состоит в том, что как только я нахожу эти данные, я буду напрямую или через некоторые этапы обработки загружать их в Hive.

Вопросы, которые я хотел бы видеть ответил:

  1. ли эти данные, хранящиеся в HDFS или он рассеивается в локальных узлах данных?
  2. Если он хранится в HDFS. Где я могу найти его? Если он хранится в локальных узлах данных, как Hue находит и показывает это?
  3. Предполагая, что я могу получить доступ к данным. В каком формате я бы ожидал эти данные. Сохраняется ли это в общих файлах журнала или я могу ожидать несколько структурированных данных?

Я использую CDH 5.8

ответ

1

Если рабочие места представлены другими способами, кроме Оози, мой подход не будет полезен.

Мы собрали все журналы с сервера oozie через API-интерфейс Oozie Java и выполнили итерацию по информации координатора, чтобы получить необходимую информацию.

Вам нужно подумать, какую информацию вам нужно получить.

  1. Если у вас есть все вакансии, представленные через Bundle, тогда переходите от связки к координатору, а затем к документообороту, чтобы узнать информацию.
  2. Если вы хотите получить всю информацию координатора, тогда просто вызовите api с числом координаторов, чтобы принести и получить необходимую информацию.

И тогда мы загрузили сгружен результат в улей таблицу и там можно отфильтровать результаты неудачных или тайм-аут координаторов & различные другие параметры.

Вы можете начать поиск в приведенном примере с сайта Oozie: - https://oozie.apache.org/docs/3.2.0-incubating/DG_Examples.html#Java_API_Example]

1

Если вы хотите, чтобы отслеживать состояние заданий, запланированных в oozie, вы должны использовать oozie RESTful API или JavaAPI. Я не работал с версией Hue для работы Oozie, но, я думаю, он по-прежнему использует rest api за сценой. Он предоставляет вам всю необходимую информацию, и вы можете создать некоторую услугу, которая будет потреблять эти данные и вставлять их в таблицу Hive.

Другой вариант - получить доступ к базе данных Oozie. Как вы, вероятно, знаете, что Оози хранит все данные о запланированных заданиях в некоторых РСУБД, таких как MqSql или Postgres. Вы можете использовать эту информацию через разъем JDBC. Интересным способом было бы попытаться связать эту информацию непосредственно с Hive как набором внешних таблиц, хотя JDBCStorageHandler. Не уверен, что он работает, но стоит попробовать.