2015-06-29 4 views
1

Я работаю над проектом, связанным с созданием запрашиваемого набора данных из довольно больших файлов журнала Informatica. Для этого файлы импортируются в кластер Hadoop с использованием Flume, который уже был настроен сотрудником, прежде чем я начал этот проект. Моя задача - создать таблицу из данных, содержащихся в журналах, чтобы запросы могли выполняться легко. Проблема, с которой я сталкиваюсь, связана с форматированием файла журнала. Журналы в формате:Hadoop Informatica Обработка журнала

Отметка: Серьезность: (Pid | Thread): (ServiceType | ServiceName): ClientNode: MessageCode: Сообщение

Вопрос заключается в том, что иногда в поле сообщение содержит дополнительные комментарии двоеточиями , например сообщение может быть [x: y: z]. При использовании HCatalog для создания таблицы я не могу объяснить это поведение и вместо этого приводит к дополнительным столбцам.

Любые предложения? Обычно я использовал Ruby для разделения полей или замены разделителя, чтобы сохранить целостность при импорте с помощью HCкаталога. Есть ли какая-то предварительная обработка, которую я могу сделать с помощью кластерной части, которая позволяет мне это делать? Файлы слишком большие, чтобы обрабатывать локально.

+0

Вы можете запустить скрипт Ruby (или любой другой исполняемый файл) с помощью утилиты Hadoop Streaming. Вы также можете реализовать такую ​​предварительную обработку на Pig. –

ответ

0

Ответ должен был использовать свиной скрипт и Python UDF. Сценарий свиньи загружается в файл, затем вызывает сценарий Python по строкам, чтобы правильно разбить поля. Затем результат может быть записан в более дружественный CSV и/или сохранен в таблице.

Смежные вопросы