[发明专利]一种ElasticSearch分片扩展方法有效
申请号: | 201710102542.3 | 申请日: | 2017-02-24 |
公开(公告)号: | CN108509438B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 王磊;王胤然;徐寅;穆宁 | 申请(专利权)人: | 南京烽火星空通信发展有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27;G06F16/31;G06F16/33 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 付秀颖 |
地址: | 210019 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种ElasticSearch分片扩展方法,计算机大数据索引技术领域,本发明将一个需要分裂的数据表新建一个扩展表,将需要分裂的分片的数据根据一定规则切分为多份,将一份留在原来的分片中,其他导入到扩展表的对应分片中,解决了当一个分片数据量过大时,ES不具备自动分裂的功能的问题,提高了数据的查询与入库效率。 | ||
搜索关键词: | 一种 elasticsearch 分片 扩展 方法 | ||
【主权项】:
1.一种ElasticSearch分片扩展方法,其特征在于:包括如下步骤:步骤1:建立全文索引系统,全文索引系统包括Hadoop存储服务器集群、WEB界面服务器、数据导入服务器和数据采集终端,数据采集终端通过互联网连接数据导入服务器,WEB界面服务器和数据导入服务器均通过互联网连接Hadoop存储服务器集群;步骤2:通过Lucene全文信息检索工具在Hadoop存储服务器集群中建立全文检索平台,并且通过Lucene全文信息检索工具在Hadoop存储服务器集群中分配出ES集群;步骤3:数据采集终端将流数据或文本数据输入到数据导入服务器,数据倒入服务器将流数据或文本数据发送给Hadoop存储服务器集群进行存储;步骤4:ES集群通过Lucene全文信息检索工具为Hadoop存储服务器集群存储的数据建立倒排文件索引结构的索引数据表,ES集群为索引数据表提供存储用的字段区;所述存储用的字段区中包含多个文档号存储字段区;ES集群按以下步骤为索引数据表提供存储用的字段区:步骤S1:设定分片是每一个索引数据表的基本存储单位,每一个索引数据表均包含若干分片,ES集群根据索引数据表的分片将索引数据表分布存储到ES集群中的不同存储介质中;步骤S2:设定index表单为ES集群里的一张索引数据表,shard分片为index表单的一个分片;index表单中包含有多个shard分片;设定一个分片阈值;步骤S3:ES集群对index表单建立一个扩展index表单,ES集群读取index表单中最大的shard分片,判断shard分片是否到达分片阈值:是,则执行步骤S4,否,则执行步骤S5;ES集群对index表单建立一个扩展index表单的具体步骤如下:步骤A:ES集群获取index表单,并遍历index表单中的每一个shard分片,并做以下判断:若shard分片超出分片阈值,则执行步骤C;若shard分片不超出分片阈值,则执行步骤B;步骤B:查询shard分片下的扩展表的分片是否有超出分片阈值:是,则执行步骤C;否,则执行步骤S4;步骤C:ES集群根据分片阈值的大小计算超过分片阈值的shard分片应该切分的个数,校验扩展index表单是否存在或扩展index表单的shard分片是否已满:若不存在或shard分片已满,则继续扩展新的扩展index表单,并且shard分片个数是现有shard分片的个数的两倍,把新增的扩展index表单信息更新到路由表中;若存在,则列出所有超过分片阈值的shard分片列表,并降序排列后加入到Zookeeper的任务队列中;Zookeeper的任务队列根据shard分片列表生成多个作业任务;步骤S4:依据以下步骤将shard分片分裂:步骤D:ES集群从Zookeeper的任务队列中获取一个作业任务后,通知Ares入库程序停止对该表进行入库操作,判断Ares入库程序是否返回消息:是,则执行步骤E;否,则等待Ares入库程序回应;步骤E:ES集群按以下规则开始对shard分片进行分裂操作:步骤E1:ES集群获取该shard分片的存储大小;步骤E2:将所述存储大小除以2后得出分片计算结果,将分片计算结果与分片阈值相比较:如果大于分片阈值,记录将所述存储大小除以2的次数N,执行步骤E2;如果小于分片阈值,记录2×N为要分裂的个数;步骤E3:获取该shard分片的数据总量total,分裂后的数据量大小K:K=total÷(2×N);步骤E4:通过ES集群查询接口给定一个时间T,T单位为秒,当T秒内获取的数据记为m,系数值为s,s的大小等于K÷m;ES集群根据所述分裂的个数、数据量大小K和系数s对shard分片进行分裂;步骤F:ES集群对shard分片分裂后的新的分片进行编号,设定新的分片的编号为shard[0]分片;步骤G:删除shard分片中的数据,将shard[0]分片中的数据替代shard分片中的数据,并把信息的shard[0]分片加入到index表单中;同时将shard分片中除shard[0]分片以外的分片写入到NFS共享的目录中,并扩展index表单的分片,并根据NFS共享的目录中的分片对index表单的分片做recovery恢复后,再次根据步骤C的方法将超过分片阈值的shard分片列表,并降序排列后加入到Zookeeper的任务队列中;步骤H:记录分裂操作的流程轨迹,并更新流程轨迹到路由表中,路由表根据新的流程轨迹生成新的路由规则,ES集群将数据根据新的路由规则入库或查询;步骤S5:分片扩展结束,重复执行步骤S1到步骤S4,直到ES集群为所有index表单均提供存储用的字段区。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京烽火星空通信发展有限公司,未经南京烽火星空通信发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710102542.3/,转载请声明来源钻瓜专利网。
- 上一篇:一种ElasticSearch查询加速方法
- 下一篇:一种代数教学系统