基于solr海量日志信息查询性能优化探究

基于solr海量日志信息查询性能优化探究

ID:5605766

大小:29.50 KB

页数:8页

时间:2017-12-19

基于solr海量日志信息查询性能优化探究_第1页
基于solr海量日志信息查询性能优化探究_第2页
基于solr海量日志信息查询性能优化探究_第3页
基于solr海量日志信息查询性能优化探究_第4页
基于solr海量日志信息查询性能优化探究_第5页
资源描述:

《基于solr海量日志信息查询性能优化探究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于Solr海量日志信息查询性能优化探究  摘要ApacheSolr是一个基于ApacheLucene的开源企业搜索服务器。ApacheSolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。文章在海量日志索引信息存储和查询方面进行了探索,证明了在相关优化策略下SolrCloud具备了优秀的查询性能。关键词Solr;SolrCloud;日志信息查询;大数据;性能优化;集群;分片中图分类号:TP393文献标识码:A文章编号:1671-7597(2014)03-0037-03随着传统互联网和移动

2、互联网的持续发展,网络带给我们的是不断增长的各种不同价值信息,然而如何在信息海洋中快速检索到有价值信息,对于我们来讲至关重要。目前一些搜索公司在公共互联网领域提供了很好的解决方案,但是企业或者政府机关内部相关信息往往需要应用独立的搜索系统,SolrCloud则是很好的一个平台选择。1概述8随着企业和政府信息化建设的持续推进,相关系统平台会产生海量的日志数据,而这些日志数据的整合分析对于企业和政府相关单位具有非常重要的价值,既有关系型数据库能够存储如此海量的大数据,然而对于分析如此海量的大数据进而提供准确的信息查询服务则显得力不从心。1.1问题描述笔者所在从事项目环

3、境对于海量的日志分析具有以下要求。1)日志信息数据增量庞大。每天会有500万条记录的日志增量,总量有15亿条记录,索引物理存储总量1.5T的存储。2)数据索引需要保留4年并且会动态添加新表的配置,并且维护索引和搜索会同步进行。3)需要根据关键字搜索,将相关表的搜索结果总数返回,并且返回其中一个表的前10条数据,要求召回率为100%,可以时间排序。4)源日志数据表众多且结构不统一。5)维护索引结构时同时会产生实时日志数据(约平均每小时20万条记录),需保证新日志数据索引同步延迟不得超过1小时。6)80%请求2s内响应。物理服务器资源有限,控制在3台左右。基于以上特定

4、需求,我们提出基于SolrCloud的日志信息查询性能优化方案。1.2相关技术8SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。它有如下几个特色功能。1)集中式的配置信息。2)自动容错。3)近实时搜索。4)查询时自动负载均衡.下面将详细描述应用SolrCloud来管理维护海量日志数据查询的方案,并给出相关优化策略来满足section1.1所描述特定需求问题。2方案设计从总体框架(图1)我们可以看出,具体优化策略包括:索引优化、检索应用缓存优化、存储优化、分布式优化等方面。方案中我们依

5、据Solr实际测试结果将Solr单机节点数控制在3-5个,每节点索引量控制在3亿条左右。2.1索引优化Solr自带的全切词只能讲中文全切,英文和数字不能切,我们改造了分词算法。全切分可以很好解决拉链问题,也满足全召回,但如果字段长度过大可能会导致性能下降,我们将部分只做精确查询的字段,制定为string类型(不切词),在索引和查询时提高效率。8尽量减少配置的数据库字段,仅索引必要的数据库字段,减少索引量,同时很多字段是需要检索,但不需要显示,将这些设置为不存储。2.2检索应用缓存优化为了更好的提供检索性能,我们将继承分布式缓存。借助Solr的SolrCacheBa

6、se集成了BerkeleyDB。由于BerkeleyDB具有以下特性:高速K-V系统,具备持久化功能,拥有一层可配置的内存cache顺序读写。我们极大的缩短了查询的响应时间。2.3减少磁盘扫描Solr是通过唯一主键的,每次检索都要读取正排索引,可以在每个段前添加BloomFilter。Solr要求读取ID,有些记录不分词,倒排索引和目标正文是一样的,只读取倒排索引,减少磁盘扫描,这样通过优化存储来提高查询效率。2.4分布式建立索引SolrCloud支持直接指定shard(分片),跳过node和collection的分流过程,提高索引入库速度。我们根据日志时间来做s

7、hard指定。2.5优化分页过程图4分页过程8SolrCloud的分页查询是主节点将关键字传给各个shard,各个shard将id和分数传给主节点,主节点再排序后,再通过id到各个shard中取数据。这个过程我们可以通过在图4中1.1.2的步骤中直接返回数据,避免进行后续步骤,提高分页查询效率。2.6根据业务分片图5分片策略我们前面通过时间做shard分片,查询过程中可以通过时间范围来确定哪些shard分片,通过指定shard分片,来缩小查询数据范围,提高查询效率。3写入、读取性能效果分析SolrCloud的数据写入性能测试主要包含以下几个场景模式,包含单机3节点

8、虚拟集群与

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。