Я работаю над проектом, связанным с созданием запрашиваемого набора данных из довольно больших файлов журнала Informatica. Для этого файлы импортируются в кластер Hadoop с использованием Flume, который уже был настроен сотрудником, прежде чем я начал этот проект. Моя задача - создать таблицу из данных, содержащихся в журналах, чтобы запросы могли выполняться легко. Проблема, с которой я сталкиваюсь, связана с форматированием файла журнала. Журналы в формате:Hadoop Informatica Обработка журнала
Отметка: Серьезность: (Pid | Thread): (ServiceType | ServiceName): ClientNode: MessageCode: Сообщение
Вопрос заключается в том, что иногда в поле сообщение содержит дополнительные комментарии двоеточиями , например сообщение может быть [x: y: z]. При использовании HCatalog для создания таблицы я не могу объяснить это поведение и вместо этого приводит к дополнительным столбцам.
Любые предложения? Обычно я использовал Ruby для разделения полей или замены разделителя, чтобы сохранить целостность при импорте с помощью HCкаталога. Есть ли какая-то предварительная обработка, которую я могу сделать с помощью кластерной части, которая позволяет мне это делать? Файлы слишком большие, чтобы обрабатывать локально.
Вы можете запустить скрипт Ruby (или любой другой исполняемый файл) с помощью утилиты Hadoop Streaming. Вы также можете реализовать такую предварительную обработку на Pig. –