Обработка уже существующих файлов журнала с Flume
У меня есть большой набор файлов журналов, из которых мне нужно извлечь данные. Можно ли использовать Flume для чтения этих файлов и выгрузки их в HDFS (Cassandra или другой источник данных), который я затем могу запросить?
Документация, кажется, предполагает, что все это обработка журналов, основанная на реальных событиях. Мне интересно, если я пропускаю какой-то очевидный процесс, чтобы просто прочитать и обработать файлы статического журнала из каталога.
1 ответ
Да, это стандартный вариант использования Flume.
Сервер с файлами журналов запустит flume-узел, а другой (или, возможно, тот же) сервер запустит flume-master. Flume-узлы обнаружат flume-master, а из flume-master вы можете выполнить такие команды:
exec config my-config 'tail("/path/to/logfile")' 'collectorSink("hdfs://path/to/hdfs-folder", [options])'
Это создает конфигурацию, которая сообщает Flume, как получить доступ к файлу (он может отслеживать или читать весь файл, доступны другие параметры) и где его разместить.
Затем необходимо указать конфигурацию на конкретном сервере:
exec map (server-hostname) my-config
Дополнительная информация содержится в руководстве пользователя flume: http://archive.cloudera.com/cdh/3/flume/UserGuide/index.html