一种Elasticsearch索引分片优化方法技术

技术编号:20797071 阅读:36 留言:0更新日期:2019-04-06 10:40
本发明专利技术属于计算机技术领域,具体为一种Elasticsearch索引分片优化方法;所述方法包括根据Elasticsearch集群节点的负载性能和索引的预估业务数据量,构建索引分片数量模型,计算出合理的索引分片数量,并调整索引的参数设置用于放宽同一索引的分片在每个节点上总数量的限制;根据Elasticsearch集群节点的负载性能,对索引分片分布策略进行优化,使得性能较优的节点优先放置索引分片;根据节点的负载性能,建立负载均衡策略,对高负载节点中的热点分片进行迁移,使得Elasticsearch集群负载均衡;通过本发明专利技术采用的方法可以提高索引分片性能以及实现集群负载均衡的目标。

An Elastic search index fragmentation optimization method

The invention belongs to the field of computer technology, in particular to an Elastic search index fragmentation optimization method, which includes constructing index fragmentation quantity model, calculating reasonable index fragmentation quantity, and adjusting index parameter setting to relax the fragmentation of the same index on each node according to the load performance of Elastic search cluster node and the estimated business data volume of the index. According to the load performance of Elastic search cluster nodes, the index fragmentation distribution strategy is optimized, so that the better performance nodes place index fragmentation first; according to the load performance of nodes, a load balancing strategy is established to migrate hot spots in high load nodes, so that the load balancing of Elastic search cluster can be achieved; the method adopted by the present invention can be used to achieve load balancing of Elastic search cluster. In order to improve the performance of index fragmentation and achieve the goal of load balancing in cluster.

【技术实现步骤摘要】
一种Elasticsearch索引分片优化方法
本专利技术属于计算机
,涉及分布式全文检索系统Elasticsearch存储领域,尤其涉及一种Elasticsearch索引分片优化方法。
技术介绍
ElasticSearch是一个开源的分布式搜索引擎,它既能存储和管理大规模的非结构化数据,也能实现对其存储数据的近实时全文检索。这使得Elasticsearch近年来在业界得到广泛的部署应用,例如,百度从2013年10月开始使用ElasticSearch并覆盖其20多个业务线;Github使用Elasticsearch搜索20TB的数据,包括13亿的文件和1300亿行的代码;空客公司对交付的10,926架飞机提供其所有机型的相关文档,使用Elasticsearch在2秒内完成对20亿个文档,共6TB数据的全文搜索。对于数据暴涨并且需要对用户提供精确检索服务的企业来说,Elasticsearch为它们提供了对大数据的存储管理和全文检索功能,极大地提高了检索性能和用户体验。Elasticsearch由于其分布式存储、倒排索引以及数据分片等特性得到广泛关注。当前研究主要集中在其索引存储、数据分片处理、索引结构等方面。针对索引存储方面:郑义成等人提出了一种基于ElasticSearch分布式集群的AIS数据存储方法,该方法对AIS数据构造了索引时空立方体存储结构,从而提升时空查询效率;DequanChen,YiChen,BrianN等人提出基于HDFS和ElasticSearch日常医疗数据存储集群拓扑的优化,该方法建立两个相同Hadoop环境的大数据平台,每个集群包含一个ElasticSearch集群和一个风暴拓扑实例,以此达到实时或近实时地存储、分析和检索;SGupta,RRani进行了Elasticsearch与CouchDB面向文档数据库的存储比较研究,在该研究中分析了Elasticsearch和CouchDB在图像数据集上的性能,证明了在检索操作过程,Elasticsearch性能要比CouchDB好得多。在数据分片处理方面,杨东等人提出了基于哈希优化算法的数据分片技术,利用hash环实现数据在节点中的均匀分布;冯超政等人提出基于MongoDB数据冷热访问特征的Auto-Sharding优化机制,该研究通过对数据的访问特性进行冷热数据判定,并根据数据片之间的热负载差异建立新的数据迁移策略,以此提高数据吞吐量。在索引结构方面:张志远、徐恒盼提出了一种基于倒排索引的多维网络存储模型,通过将图的拓扑结构和顶点的多维属性存储在倒排索引列表中加快查询速度,并给出了在多维网络上进行聚集查询(cuboid)和交叉查询(crossboid)的算法;Xue-mengLi,Yong-yiWang等提出基于ElasticSearch的弹性搜索的检索方法设计与实现,该方法对索引数据结构进行优化并对检索策略进行调优,并采用相应的压缩算法来保证压缩效率,提高检索性能。以上技术解决了Elasticsearch的一些局限和性能问题,但Elasticsearch索引分片仍存在性能不高,负载不均衡等问题。如用户根据经验设置索引分片数量,设置不当可能导致索引性能降低。且现有分片的放置策略主要考虑分片放置的分散性原则,没有考虑集群节点性能和负载特点。最后,当Elasticsearch集群存在热点数据的大并发访问时,可能造成某些节点负载过高,以致于影响检索性能。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种Elasticsearch索引分片优化方法,针对Elasticsearch索引分片性能问题:根据集群节点性能和索引预估业务数据量,构建索引分片数量模型,计算获得合理的索引分片数量;得到分片结果后,对集群节点进行性能评估,选择性能较优的节点进行分片的放置;最后,针对热点索引高并发访问引起的负载不均衡问题,根据节点负载性能采用分片迁移的方式进行负载调整。通过提出的Elasticsearch索引分片优化策略,可以达到提高索引分片性能以及集群负载均衡的目标。本专利技术的一种Elasticsearch索引分片优化方法,所述方法包括以下步骤:S1、根据Elasticsearch集群节点的负载性能和索引的预估业务数据量,构建索引分片数量模型,计算出合理的索引分片数量;并计算出索引参数用于限制同一索引的分片在每个节点上的总数量;S2、根据Elasticsearch集群节点的负载性能,对索引分片分布策略进行优化,使得性能较优的节点优先放置索引分片;S3、根据节点的负载性能,建立负载均衡策略,对高负载节点中的热点分片进行迁移,使得Elasticsearch集群负载均衡。进一步的,所述合理的索引分片数量是根据以下确定的:设置性能校验条件,对Elasticsearch集群每个节点进行性能校验;性能校验完成后采用下式计算得到索引分片数量;其中,shardNum表示索引分片数量;表示向下取整;D为索引预估业务数据量,λ为扩展系数,N表示数组nodeArr的长度;nodeArrl表示数组nodeArr中第l个数据;若上式得到的索引分片数量超过当前可用的节点数量,则以当前可用的节点数量设置分片数量,即采用下式计算索引分片数量同时调整索引参数total_shards_per_node:x,该参数用于限制同一索引的分片在每个节点上的总数量,调整该参数,在步骤S2进行分片放置时,以减少对S2步骤分片放置结果的影响。进一步的,所述对Elasticsearch集群每个节点进行性能校验包括校验节点磁盘使用率是否使用超过其磁盘阈值,校验节点现有索引分片数量是否超过其数量阈值,并将校验结果保存于数组nodeArr中,若两次校验各自超过其阈值,则将对应的nodeArr元素置1,否则置为0。进一步的,所述索引参数total_shards_per_node的取值x通过下式计算进一步的,所述步骤S2具体包括:S21:采用线性加权法对集群节点进行性能评估;S22:以步骤S1计算出的索引分片数量,对该索引分片进行分片放置,优先从性能值高的节点进行分片的放置;S23:判断是否还有剩余分片未创建,若有,则在集群中创建这些分片,不对其进行放置,并标记其状态为unassigned;其中,性能评估表示为Qi=a×LAi+s×SNi+b×DsRi;Qi值代表i节点的性能值;LAi表示i节点的平均负载;SNi表示i节点的分片数量;DsRi表示i节点的磁盘使用率;a表示第一权重系数;s表示第二权重系数;b表示第三权重系数;unassigned标记是Elasticsearch集群中对未放置分片的标记。进一步的,所述步骤S3具体包括:S31:统计热点分片,周期性监控索引的检索频率,若达到第一阈值α,则将该索引设置为热点索引,热点索引所属分片均为热点分片,判定各节点中的热点分片数量是否达到第三阈值γ,若达到,则将该类节点加入待负载调整列表;S32:利用线性加权法对集群节点进行负载评估:S33:对待负载调整列表中的节点进行负载均衡调整;负载评估表示为Ei=o×IOi+d×MBPSi+c×CPUi+r×RAMi;Ei值代表i节点的负载评价值,IOi表示i节点的I/O使用率;MBPSi表示i节点的网络带宽使用率;CP本文档来自技高网
...

【技术保护点】
1.一种Elasticsearch索引分片优化方法,其特征在于,所述方法包括以下步骤:S1、根据Elasticsearch集群节点的负载性能和索引的预估业务数据量,构建索引分片数量模型,计算出合理的索引分片数量,并调整索引的参数设置用于放宽同一索引的分片在每个节点上总数量的限制;S2、根据Elasticsearch集群节点的负载性能,对索引分片分布策略进行优化,使得性能较优的节点优先放置索引分片;S3、根据节点的负载性能,建立负载均衡策略,对高负载节点中的热点分片进行迁移,使得Elasticsearch集群负载均衡。

【技术特征摘要】
1.一种Elasticsearch索引分片优化方法,其特征在于,所述方法包括以下步骤:S1、根据Elasticsearch集群节点的负载性能和索引的预估业务数据量,构建索引分片数量模型,计算出合理的索引分片数量,并调整索引的参数设置用于放宽同一索引的分片在每个节点上总数量的限制;S2、根据Elasticsearch集群节点的负载性能,对索引分片分布策略进行优化,使得性能较优的节点优先放置索引分片;S3、根据节点的负载性能,建立负载均衡策略,对高负载节点中的热点分片进行迁移,使得Elasticsearch集群负载均衡。2.根据权利要求1所述的一种Elasticsearch索引分片优化方法,其特征在于,所述合理的索引分片数量是根据以下确定的:设置性能校验条件,对Elasticsearch集群每个节点进行性能校验;性能校验完成后采用下式计算得到索引分片数量;其中,shardNum表示索引分片数量;表示向下取整;D为索引预估业务数据量,λ为扩展系数,N表示数组长度;nodeArrl表示数组nodeArr中第l个数据;若上式得到的索引分片数量超过当前可用的节点数量,则以当前可用的节点数量设置分片数量,即采用下式计算索引分片数量同时调整索引参数total_shards_per_node:x,该参数用于限制同一索引的分片在每个节点上的总数量。3.根据权利要求2所述的一种Elasticsearch索引分片优化方法,其特征在于,所述对Elasticsearch集群每个节点进行性能校验包括校验节点磁盘使用率是否使用超过其磁盘阈值,校验节点现有索引分片数量是否超过其数量阈值,并将校验结果保存于数组nodeArr中,若两次校验各自超过其阈值,则将对应的nodeArr元素置1,否则置为0。4.根据权利要求2所述的一种Elasticsearch索引分片优化方法,其特征在于,所述索引参数total_shards_per_node的取值x通过下式计算5.根据权利要求1所述的一种Elasticsearch索引分片优化方法,其特征在于,所述步骤S2具体包括:S21:采用线性加权法对集群节点进行性能评估;S22:以步骤S1计算出的索引分片数量,对该索引分片进行分片放置,优先从性能值高的节点进行分片的放置;S23:判断是否还有剩余分片未创建,若有...

【专利技术属性】
技术研发人员:蒋溢王章龙熊安萍龙林波
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1