Search 使用hadoop进行日志搜索

Search 使用hadoop进行日志搜索,search,hadoop,mapreduce,Search,Hadoop,Mapreduce,我们在多个web服务器上有大量日志文件,约100个GIG,需要实时搜索。这些日志文件由不同的应用程序每秒写入多次。为此,我们最近在一些服务器上安装了hadoop集群。为了实现对这些日志的搜索,我想到了这个设计:在web服务器上运行一个进程,该进程创建日志的反向索引,并将其缓存在web服务器本身的内存中,并通过flume推送到HDFS,以便在缓存满时存储在Hive中这很像LRU缓存。当搜索某个内容时,这有两种帮助:最新的日志从内存缓存中返回,速度很快,较旧的日志从磁盘返回。由于用户希望首先查看最新

我们在多个web服务器上有大量日志文件,约100个GIG,需要实时搜索。这些日志文件由不同的应用程序每秒写入多次。为此,我们最近在一些服务器上安装了hadoop集群。为了实现对这些日志的搜索,我想到了这个设计:在web服务器上运行一个进程,该进程创建日志的反向索引,并将其缓存在web服务器本身的内存中,并通过flume推送到HDFS,以便在缓存满时存储在Hive中这很像LRU缓存。当搜索某个内容时,这有两种帮助:最新的日志从内存缓存中返回,速度很快,较旧的日志从磁盘返回。由于用户希望首先查看最新的日志,所以这种技术是有效的。有人能验证一下这个设计是否能正常工作和扩展吗。有更好的选择吗


感谢您,您可以将反向索引存储在HBase中,以提供对旧日志的更多实时访问

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


另一种完全不同的方法是使用Lucene/Solr为日志编制索引。这有很多现成的搜索功能。

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

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

另一种完全不同的方法是使用Lucene/Solr为日志编制索引。这有很多现成的搜索功能