使用hadoop进行日志搜索

时间:2011-12-29 16:20:47

标签: search hadoop mapreduce

我们在需要实时搜索的多个Web服务器上拥有庞大的日志文件(~100s的Gigs)。这些日志文件由不同的应用程序多次/秒写入。为此,我们最近在某些服务器上安装了一个hadoop集群。为了实现对这些日志的搜索,我想到了这个设计:在Web服务器上运行一个进程,它创建一个倒置的日志索引并将其缓存在内存中(在Web服务器本身上)并通过flume推送到HDFS在缓存已满时存储在Hive中(这很像LRU缓存)。搜索某些内容时,这有两种方式:最新的日志从内存缓存中返回,速度很快,旧的日志从磁盘返回。由于用户希望首先查看最新的日志,因此该技术可行。有人可以验证这个设计是否可以正常工作和扩展。周围有更好的选择吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以将反向索引存储在HBase中,以便更实时地访问旧日志。

HBase也可能是内存缓存的可行替代品。如果您想要统一存储平台而不是将其拆分,则可以执行此操作。它显然比memcached或redis慢。


完全不同的方法可能是使用Lucene / Solr索引日志。这有很多很好的功能,可用于搜索。