Назад | Перейти на главную страницу

Обработка существующих файлов журналов с помощью Flume

У меня есть большой набор файлов журналов, из которых мне нужно извлечь данные. Можно ли использовать Flume для чтения этих файлов и выгрузки их в HDFS (Cassandra или другой источник данных), который я затем могу запросить?

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

Да, это стандартный вариант использования лотка.

Сервер с файлами журнала будет запускать flume-node, а другой (или потенциально тот же) сервер будет запускать flume-master. Узлы flume обнаруживают мастер потока, и из мастера потока вы можете выполнять такие команды, как:

exec config my-config 'tail("/path/to/logfile")' 'collectorSink("hdfs://path/to/hdfs-folder", [options])'

Это создает конфигурацию, которая сообщает flume, как получить доступ к файлу (он может отслеживать или читать весь файл, доступны другие параметры) и куда его поместить.

Затем нужно указать конфигурацию на конкретный сервер:

exec map (server-hostname) my-config

В руководстве пользователя лотка есть дополнительная информация: http://archive.cloudera.com/cdh/3/flume/UserGuide/index.html