[发明专利]一种ElasticSearch分片扩展方法有效
申请号: | 201710102542.3 | 申请日: | 2017-02-24 |
公开(公告)号: | CN108509438B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 王磊;王胤然;徐寅;穆宁 | 申请(专利权)人: | 南京烽火星空通信发展有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27;G06F16/31;G06F16/33 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 付秀颖 |
地址: | 210019 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 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入库程序停止对扩展index表单进行入库操作,判断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表单均提供存储用的字段区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京烽火星空通信发展有限公司,未经南京烽火星空通信发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710102542.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种ElasticSearch查询加速方法
- 下一篇:一种代数教学系统