2011-12-29 5 views
2

リアルタイムで検索する必要がある複数のWebサーバー上に巨大なログファイル(~100s of Gigs)があります。これらのログファイルは、複数のアプリケーションで毎秒複数回書き込まれます。最近、この目的のためにいくつかのサーバーにハープ・クラスタをインストールしました。これらのログの検索を実装するためには、私はこの設計を考えました。逆インデックスのログを作成し、メモリ内にキャッシュし(Webサーバー自体で)、flume経由でHDFSにプッシュするプロセスがWebサーバー上で実行されていますキャッシュがいっぱいになるとHiveに格納されます(これはLRUキャッシュによく似ています)。これは、何かが検索されたときに2つの方法で役立ちます。最新のログはインメモリキャッシュから返され、高速で古いログがディスクから返されます。そして、ユーザーは最新のログを最初に見たいので、このテクニックが機能します。このデザインがうまく動作し、適切に拡大縮小するかどうかを誰かが確認できますか?周りに良い選択肢はありますか?hadoopを使用したログ検索

おかげ

答えて

0

あなたは、古いログに、よりリアルタイムなアクセスを提供するためのHBaseに転置インデックスを格納することができます。

HBaseは、メモリ内キャッシュの実行可能な代替手段でもある可能性があります。ストレージプラットフォームを分割するのではなく、統合する場合は、これを行うことができます。 memcachedやredisよりも明らかに遅いでしょう。


完全に異なるアプローチは、Lucene/Solrを使用してログを索引付けすることです。これは、検索のための箱からすぐに素敵な機能がたくさんあります。

関連する問題