2016-05-15 3 views
0

У меня есть требование обрабатывать данные файла журнала. Это относительно тривиально. У меня есть 4 сервера с двумя веб-приложениями, работающими на каждом из которых в общей сложности 8 файлов журнала. Они вращаются на регулярной основе. Я пишу данные в следующем формате в эти файлы журналовОбработка файлов журнала: Apache Storm или Spark

Источник Timestamp: 9340398; 39048039; 930483; 3940830

Где номера являются идентификаторы в хранилище данных. Я хочу настроить процесс для чтения этих журналов, и для каждого идентификатора он будет обновлять счет в зависимости от того, сколько раз его идентификатор был зарегистрирован. Это может быть как в реальном времени, так и в партии. Моим языком интерфейса для хранилища данных является Java. Процесс запускается в процессе производства, поэтому он должен быть надежным, но также должен иметь относительно простую архитектуру, поэтому он может обслуживаться. Мы также запускаем zookeeper.

Моя первоначальная мысль заключалась в том, чтобы делать это в пакете всякий раз, когда файл журнала поворачивается с использованием искры Apache на каждом сервере. Однако я тогда посмотрел на агрегировщиков журналов, таких как Apache Flume, Kafka и Storm, но это кажется излишним.

Учитывая множество вариантов, у кого есть какие-либо хорошие предложения относительно того, какие инструменты использовать для решения этой проблемы на основе опыта?

+0

Возможно, такие решения, как [logstash] (https://www.elastic.co/products/logstash), могут быть полезны? Как правило, такие вопросы не соответствуют теме SO. –

+0

Привет, я посмотрел на Logstash, он казался более ориентированным на операции типа фильтрации. Я согласен, что этот вопрос не подходит для устава SO. –

ответ

1

8 файлов журнала, похоже, не гарантируют технологию «больших данных». Если вы хотите начать игру с этим типом технологии, я бы посоветовал вам начать с Spark и/или Flink - оба имеют относительно похожую модель программирования, оба могут обрабатывать «бизнес в реальном времени» (Flink лучше в но оба будут работать в вашем случае). Шторм является относительно жестким (трудно изменить топологии) и имеет более сложную модель программирования

+0

Я склонен согласиться с тем, что это не проблема «больших данных». Мне просто пришло в голову, что должны быть некоторые достаточно простые инструменты для эффективного решения проблемы агрегации и обработки журналов, даже для небольших проблем с данными. Мне может даже не понадобиться агрегация журналов, поскольку источник данных может обрабатывать обновления из дайверов. Таким образом, решение проблемы может привести к тому, что либо хвост файла журнала, либо периодическая обработка периода. –

+2

Вы считали ELK или Fluentd? Если вы хотите чистый JAVA, Flume может быть другим, но у него нет надежного хвоста. Нативный хвост может быть доступен в версии 1.7, но не уверен, когда. Я бы предложил очень простой конфигуратор logstash или filebeats и перешел на Elastic, где вы можете сделать простое агрегирование в терминах. – YaRiK

+0

Я посмотрел на ELK, но, возможно, посмотрю, как вы сказали. –

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