使用hadoop进行日志搜索



我们在多个web服务器上有巨大的日志文件(~ 100兆),需要实时搜索。这些日志文件被不同的应用程序每秒多次写入。为此,我们最近在一些服务器上安装了hadoop集群。为了实现对这些日志的搜索,我想到了这样的设计:在web服务器上运行一个进程,它创建日志的反向索引并将其缓存到内存中(在web服务器本身),并在缓存满时通过flume推送到HDFS以存储在Hive中(这很像LRU缓存)。在搜索某些内容时,这在两个方面有帮助:从内存缓存中返回最近的日志,并且速度很快;从磁盘返回较旧的日志。由于用户希望首先看到最新的日志,所以这种技术是有效的。有人可以验证如果这个设计将工作和规模适当。有没有更好的选择?

谢谢

您可以将倒排索引存储在HBase中,以提供对旧日志的更实时的访问。

HBase也可能是内存缓存的可行替代方案。如果您希望统一存储平台,而不是将其分开,则可以这样做。它显然会比memcached或redis慢。


一个完全不同的方法可以是使用Lucene/Solr索引你的日志。

最新更新