поиск в журнале с использованием hadoop - PullRequest
2 голосов
/ 29 декабря 2011

У нас есть огромные файлы журналов (~ 100 с гигабайт) на нескольких веб-серверах, которые необходимо искать в режиме реального времени.Эти файлы журнала записываются несколько раз в секунду различными приложениями.Для этого мы недавно установили кластер hadoop на некоторых серверах.Чтобы реализовать поиск по этим журналам, я подумал о такой схеме: на веб-серверах выполняется процесс, который создает инвертированный индекс журналов и кэширует его в памяти (на самих веб-серверах) и передает в HDFS через поток данных.храниться в Hive, когда кеш заполнен (это очень похоже на кеш LRU).Это помогает двумя способами, когда что-то ищется: самые последние журналы возвращаются из кеша в памяти и быстро, а старые журналы возвращаются с диска.И так как пользователь хочет сначала посмотреть последние журналы, этот метод работает.Может кто-нибудь проверить, будет ли этот дизайн работать и масштабироваться должным образом.Есть ли лучшие альтернативы вокруг?

Спасибо

1 Ответ

0 голосов
/ 29 декабря 2011

Вы можете сохранить инвертированный индекс в HBase, чтобы обеспечить больший доступ в режиме реального времени к вашим старым журналам.

HBase также может быть жизнеспособной альтернативой кешу в памяти. Вы можете сделать это, если хотите объединить платформу хранения вместо ее разделения. Очевидно, это будет медленнее, чем memcached или redis.


Совершенно другой подход мог бы использовать Lucene / Solr для индексации ваших логов. Это имеет много полезных функций для поиска.

...