стек для загрузки файлов журнала в cassandra

Я хотел бы периодически (ежечасно) загружать журналы приложений в Cassandra для анализа с помощью pig.

Как это обычно делается? Есть ли проекты, посвященные этому?

Я вижу, что mumakil обычно используется для массовой загрузки данных. Я мог бы написать задание cron, построенное вокруг этого, но надеялся на что-то более надежное, чем задание, которое я бы сделал на скорую руку.

Я также готов модифицировать приложения для хранения данных в другом формате (например, в системном журнале или непосредственно в Cassandra), если это предпочтительнее. Хотя в этом случае я бы беспокоился о потере данных, если Кассандра будет недоступна.


person Eric    schedule 25.05.2012    source источник


Ответы (2)


Вам следует подумать о загрузке их в HDFS с помощью Flume, поскольку эти проекты были разработаны для этой цели. Затем вы можете использовать Pig непосредственно против ваших неструктурированных/полуструктурированных данных журнала.

person rs_atl    schedule 27.05.2012

Если вы настроены на использование Flume, вам нужно будет написать собственный приемник Flume (несложно). Вы можете смоделировать его на https://github.com/geminitech/logprocessing.

Если вы хотите использовать Pig, я согласен с другим автором, что вам следует использовать HDFS (или S3). Hadoop разработан для очень хорошей работы с блочным хранилищем, где блоки огромны. Это предотвращает ужасную производительность ввода-вывода, которую вы получаете от большого количества операций поиска на диске и сетевого ввода-вывода. Хотя вы МОЖЕТЕ использовать Pig с Cassandra, у вас будут проблемы с моделью данных Cassandra, и у вас будет гораздо худшая производительность.

Однако, если вы действительно хотите использовать Cassandra и не зациклены на Flume, я бы рекомендовал использовать Kafka и Storm.

Мой рабочий процесс для загрузки файлов журнала в Cassandra с помощью Storm:

  1. Kafka собирает журналы (например, с помощью приложения log4j)
  2. Логи попадают в storm кластер с помощью storm-kafka
  3. Строка журнала анализируется и вставляется в Cassandra с помощью пользовательских Stormbolts (записывать Stormbolts очень просто). Также уже доступен болт Storm-Cassandra.
person nickgroenke    schedule 22.06.2012