CN110990366A - 一种提升基于es的日志系统性能的索引分配方法及装置 - Google Patents

一种提升基于es的日志系统性能的索引分配方法及装置 Download PDF

Info

Publication number
CN110990366A
CN110990366A CN201911232250.7A CN201911232250A CN110990366A CN 110990366 A CN110990366 A CN 110990366A CN 201911232250 A CN201911232250 A CN 201911232250A CN 110990366 A CN110990366 A CN 110990366A
Authority
CN
China
Prior art keywords
index
cluster
log
splitting
fragments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911232250.7A
Other languages
English (en)
Other versions
CN110990366B (zh
Inventor
高文文
陈建锋
韩峰
刘圣奇
时成
刘星航
王冉
彭颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN201911232250.7A priority Critical patent/CN110990366B/zh
Publication of CN110990366A publication Critical patent/CN110990366A/zh
Application granted granted Critical
Publication of CN110990366B publication Critical patent/CN110990366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种提升基于ES的日志系统性能的索引分配方法及装置,方法包括:索引分析模块实时动态收集ES集群中的索引信息,并基于索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;配置中心为日志分发集群提供包括索引名称和索引分配策略的配置信息,日志分发集群中的每个节点获取索引的配置信息,在ES集群接收到日志后根据索引名称将日志写入指定的索引中。本发明能够保证索引容量在ES节点上均匀分布,从而确保ES集群各个节点工作负载均衡。

Description

一种提升基于ES的日志系统性能的索引分配方法及装置
技术领域
本发明涉及索引分配技术领域,尤其涉及一种提升基于ES(Elasticsearch,高扩展性和高可用性的实时数据分析的全文搜索工具)的日志系统性能的索引分配方法及装置。
背景技术
分布式实时日志处理系统通常基于ELK构建,而ES节点负责日志的写入和查询,当索引容量不同导致分片大小分布不均匀时,容易造成ES单点读写延迟激增,甚至会出现OOM(outofmemory,内存溢出)导致ES进程挂掉,最终造成ES集群响应速度慢、处理能力下降,在读写峰值时段可能导致ES集群瘫痪。因此,需要对ES集群索引进行管理,保证索引容量在ES节点上均匀分布,从而确保ES集群各个节点工作负载均衡。
发明内容
有鉴于此,本发明提供了一种提升基于ES的日志系统性能的索引分配方法,能够保证索引容量在ES节点上均匀分布,从而确保ES集群各个节点工作负载均衡。
本发明提供了一种提升基于ES的日志系统性能的索引分配方法,包括:
索引分析模块实时动态收集ES集群中的索引信息,并基于所述索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;
配置中心为日志分发集群提供包括索引名称和所述索引分配策略的配置信息;
所述日志分发集群中的每个节点获取索引的所述配置信息;
在ES集群接收到日志后根据所述索引名称将日志写入指定的索引中。
优选地,所述拆分算法包括:
步骤1:当
Figure BDA0002303085470000021
时,
Figure BDA0002303085470000022
否则SplitNum=0,跳转到步骤3;
步骤2:
Figure BDA0002303085470000023
步骤3:返回IndexName,ShardNum,SplitNum;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,SplitNum为索引拆分的子索引数,为0表示不拆分。
优选地,所述合并算法包括:
步骤1:当
Figure BDA0002303085470000024
时,mergeMode=d,跳转到步骤5,否则跳转步骤2;
步骤2:当
Figure BDA0002303085470000025
时,mergeMode=w,跳转到步骤5,否则跳转步骤3;
步骤3:当
Figure BDA0002303085470000026
时,mergeMode=m,跳转到步骤5,否则跳转步骤4;
步骤4:当
Figure BDA0002303085470000027
时,mergeMode=y,跳转到步骤5,否则跳转步骤5;
步骤5:返回IndexName,ShardNum,mergeMode;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,mergeMode表示按照天、周、月、年合并索引,取值为d,w,m,y。
优选地,所述索引拆分策略为:根据索引名称将索引划分为M个子索引,每个子索引前缀相同,通过子索引id区别各个子索引。
一种提升基于ES的日志系统性能的索引分配装置,包括:索引分析模块、配置中心、日志分发集群和ES集群;其中:
所述索引分析模块,用于实时动态收集ES集群中的索引信息,并基于所述索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;
所述配置中心,用于为所述日志分发集群提供包括索引名称和所述索引分配策略的配置信息;
所述日志分发集群,用于通过每个节点获取索引的所述配置信息;
所述ES集群,用于在接收到日志后根据所述索引名称将日志写入指定的索引中。
优选地,所述拆分算法包括:
步骤1:当
Figure BDA0002303085470000031
时,
Figure BDA0002303085470000032
否则SplitNum=0,跳转到步骤3;
步骤2:
Figure BDA0002303085470000033
步骤3:返回IndexName,ShardNum,SplitNum;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,SplitNum为索引拆分的子索引数,为0表示不拆分。
优选地,所述合并算法包括:
步骤1:当
Figure BDA0002303085470000041
时,mergeMode=d,跳转到步骤5,否则跳转步骤2;
步骤2:当
Figure BDA0002303085470000042
时,mergeMode=w,跳转到步骤5,否则跳转步骤3;
步骤3:当
Figure BDA0002303085470000043
时,mergeMode=m,跳转到步骤5,否则跳转步骤4;
步骤4:当
Figure BDA0002303085470000044
时,mergeMode=y,跳转到步骤5,否则跳转步骤5;
步骤5:返回IndexName,ShardNum,mergeMode;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,mergeMode表示按照天、周、月、年合并索引,取值为d,w,m,y。
优选地,所述索引拆分策略为:根据索引名称将索引划分为M个子索引,每个子索引前缀相同,通过子索引id区别各个子索引。
综上所述,本发明公开了一种提升基于ES的日志系统性能的索引分配方法,首先,索引分析模块实时动态收集ES集群中的索引信息,并基于索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;然后配置中心为日志分发集群提供包括索引名称和所述索引分配策略的配置信息,日志分发集群中的每个节点获取索引的所述配置信息,在ES集群接收到日志后根据索引名称将日志写入指定的索引中。本发明能够保证索引容量在ES节点上均匀分布,从而确保ES集群各个节点工作负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种提升基于ES的日志系统性能的索引分配方法实施例的方法流程图;
图2为本发明公开的一种索引拆分机制示意图;
图3为本发明公开的一种索引合并机制示意图;
图4为本发明公开的一种提升基于ES的日志系统性能的索引分配装置实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
分布式实时日志处理系统采用日志集中式管理,多个系统的日志通过日志分发器统一存储在ES集群中,并由ES集群对外提供日志的查询与分析服务。例如,默认每天会为每个系统建立一个索引,索引格式为“Log_A-yyyy-mm-dd”,其中“Log_A”为所用名称前缀“A”为系统标识,后缀为时间戳标识索引建立的日期。现有的默认按照天建立索引存在以下缺点:
1、当某个系统当天的日志非常大,例如超过1TB,此时每个索引的分片就会非常大,由于ES集群上的节点是根据分片数平分每个分片,这就导致部分ES节点的存储空间使用率高,而其他ES节点的存储使用率偏低;
2、当某个系统每天日志量很小,例如不超过100MB,除了会导致ES存储空间使用率不均衡外,还会导致ES存储空间“碎片化”程度过高,不方便管理。
系统存在空间使用率不均衡、索引“碎片化”程度过高都会影响ES集群的读写效率,由于ES节点间存在协同工作关系,当某个节点读写延迟大时反过来对整个ES集群就会产生消极影响,导致整个ES集群吞吐率下降,效率不高。因此,再次基础之上,本文提出索引拆分与合并机制,实时分析ES索引状态,并针对大容量索引和小容量索引提出优化策略,并结合日志分发集群实现索引的拆分与合并。
具体的,如图1所示,为本发明公开的一种提升基于ES的日志系统性能的索引分配方法实施例的方法流程图,包括以下步骤:
S101、索引分析模块实时动态收集ES集群中的索引信息,并基于索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;
当在索引分配过程中,需要提升基于ES的日志系统性能时,首先通过索引分析模块实时动态收集ES集群中索引的大小、分片数、副本数等信息,并通过索引拆分与合并算法确定对索引进行拆分或合并的具体配置并将其写入配置中心。
具体的,拆分算法为:
设ES集群中的节点数为N,每个索引的副本数为R,则ES集群允许的最大索引分片数MaxShardNum为:
Figure BDA0002303085470000061
当一个索引的分片超过MaxShardNum时就需要对索引进行拆分。根据实际经验当系统单个分片超过50G后会有明显的性能下降,因此单个分片最大为ShardSize=50G。
假设过去一段时间(默认7天)某个系统的平均索引大小为IndexSize,则满足对该系统索引进行拆分的条件是:
IndexSize≥ShardSize*MaxShardNum;
此时应该将该系统拆分为SplitNum个子索引,则有:
Figure BDA0002303085470000071
因此,可以得到如下拆分算法:
步骤1:当
Figure BDA0002303085470000072
时,
Figure BDA0002303085470000073
否则SplitNum=0,跳转到步骤3;
步骤2:
Figure BDA0002303085470000074
步骤3:返回IndexName,ShardNum,SplitNum;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,SplitNum为索引拆分的子索引数,为0表示不拆分。
具体的,基于日期的合并算法为:
系统默认是按照天建立索引,每一天一个系统对应一个索引,若索引中文档的数量很小,可以将多天的数据合并在一起,例如:可以将小系统按周、月、年建立索引。以日期为维度组织索引,允许对小系统多天的数据进行集中存放,这样既减少ES实例需要打开的文件句柄数目,同时减少了文件碎片化的情况出现,能够提高ES实例对系统资源的利用率。
假设单个分片最大为ShardSize=50G,且ES集群中的节点数为N,每个索引的副本数为R,则ES集群允许的最大索引分片数MaxShardNum为:
Figure BDA0002303085470000075
则根据天,周,月,年可以知道每个时间维度下支持的最大索引大小MaxIndexSize为(单位为GB):
Figure BDA0002303085470000081
因此,可以得到如下基于时间合并算法:
步骤1:当
Figure BDA0002303085470000082
时,mergeMode=d,跳转到步骤5,否则跳转步骤2;
步骤2:当
Figure BDA0002303085470000083
时,mergeMode=w,跳转到步骤5,否则跳转步骤3;
步骤3:当
Figure BDA0002303085470000084
时,mergeMode=m,跳转到步骤5,否则跳转步骤4;
步骤4:当
Figure BDA0002303085470000085
时,mergeMode=y,跳转到步骤5,否则跳转步骤5;
步骤5:返回IndexName,ShardNum,mergeMode;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,mergeMode表示按照天、周、月、年合并索引,取值为d,w,m,y。
S102、配置中心为日志分发集群提供包括索引名称和索引分配策略的配置信息;
然后,配置中心为日志分发集群提供包括索引名称、索引拆分策略、索引合并策略等配置信息。
S103、日志分发集群中的每个节点获取索引的配置信息;
然后日志分发集群中的每个节点通过配置中心对外提供的API动态获取索引的配置信息,然后通过动态配置日志进入ES集群时的索引名称将日志分发到指定的索引中。
S104、在ES集群接收到日志后根据索引名称将日志写入指定的索引中。
在ES集群接收到日志后会根据索引名称将日志写入指定的索引中,从而实现索引的拆分与合并。
具体的,如图2所示,上述实施例的索引拆分策略可以为:
假设系统A要拆分为M个索引,则拆分的策略是根据索引名称将索引划分为M个子索引,每个子索引前缀相同,通过子索引id区别各个子索引,按照上述策略,假设系统A的索引名称为Log_A-yyyy-mm-dd,其中yyyy-mm-dd为索引产生的日期,则拆分后的结果为:
Figure BDA0002303085470000091
Figure BDA0002303085470000092
当索引分配策略为索引拆分策略时,索引分配流程如下:
1、系统topicName名为Log_A日志流入日志分发集群中;
2、日志分发集群通过配置中心获取该系统的索引拆分策略相关配置;
3、确认该系统要进行索引拆分后,内部基于Hash确定当前日志所属的拆分后的子索引名称;
4、动态更新当前日志对应的子索引名称;
5、日志分发集群将当前日志发送给ES集群进行处理;
6、ES集群根据当前日志的索引名称确定日志的主分片的存储位置,并将写日志请求转发到对应的节点上;
7、ES节点接收到写请求后会根据日志中的索引名称等信息将日志写入当前节点的对应主分片中,并在写入成功后,将写请求转发给其他副本分片所在的ES节点,在副本节点写入成功后即完成写入。
具体的,如图3所示,上述实施例的索引合并策略可以为:
在ES集群中若是按照天建立索引,每一天一个系统对应一个索引,若索引中文档的数量很小,可以将多天的数据合并在一起,索引合并可以是根据日期合并。以日期为维度组织索引,允许我们对小系统多天的数据进行集中存放,这样既减少ES节点需要打开的文件句柄数目,同时减少了文件碎片化的情况出现。目前支持按照天、星期、月和年对某一系统的日志建立索引,默认情况按照天建立索引,假设系统名为A,按照索引合并策略,可以建立的索引如下:
Figure BDA0002303085470000101
Figure BDA0002303085470000102
Figure BDA0002303085470000103
Figure BDA0002303085470000104
当索引分配策略为索引合并策略时,索引分配流程如下:
1、系统topicName名为Log_A、Log_B、Log_C、Log_D日志流入日志分发集群中;
2、分发集群通过配置中心获取该系统的索引合并策略相关配置;
3、确认该系统要进行索引合并后,内部基于索引合并策略动态计算子索引名称;
4、动态更新当前日志对应的子索引名称;
5、日志分发集群将当前日志发送给ES集群进行处理;
6、ES集群根据当前日志的索引名称确定日志的主分片的存储位置,并将写日志请求转发到对应的节点上;
7、ES节点接收到写请求后会根据日志中的索引名称等信息将日志写入当前节点的对应主分片中,并在写入成功后,将写请求转发给其他副本分片所在的ES节点,在副本节点写入成功后即完成写入。
由此可以看出,本发明提供的日志分发集群通过添加索引合并与拆分决策器,能够采用HTTP方式实时获取配置中心的配置并动态决定对索引进行合并还是拆分,然后根据索引合并算法、索引拆分算法决定索引名称,最后通过负载均衡算法将日志均匀的发送给ES集群中的各个节点。而现有技术的索引名称是静态不可变的。本发明通过添加索引合并和拆分机制,一方面提供索引建立的灵活性,另一方面可以实现对ES集群的优化提高集群处理效率。
本发明通过索引分析模块中包含的索引拆分算法和索引合并算法,会实时从ES集群中获取每个索引的大小、分片数、副本数等索引元数据,然后根据内部索引合并与拆分算法分析每个索引可能需要采用的策略,并生成策略配置,最后将分析的结果写入配置中心。
本发明提供的配置中心一方面能够负责存储由索引分析模块针对大容量索引提出拆分策略,以及针对小容量索引提供索引合并策略信息,另一方面能够对外提供API接口,以便日志分发集群能够实时获取各个系统的拆分与合并配置信息。
综上所述,本发明能够保证索引容量在ES节点上均匀分布,从而确保ES集群各个节点工作负载均衡。
如图4所示,为本发明提供的一种提升基于ES的日志系统性能的索引分配装置实施例的结构示意图,所述装置包括:索引分析模块、配置中心、日志分发集群和ES集群;其中:
索引分析模块,用于实时动态收集ES集群中的索引信息,并基于索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;
配置中心,用于为日志分发集群提供包括索引名称和所述索引分配策略的配置信息;
日志分发集群,用于通过每个节点获取索引的配置信息;
ES集群,用于在接收到日志后根据索引名称将日志写入指定的索引中。
本实施例提供的提升基于ES的日志系统性能的索引分配装置与上述实施例提供的提升基于ES的日志系统性能的索引分配方法的工作原理相同,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种提升基于ES的日志系统性能的索引分配方法,其特征在于,包括:
索引分析模块实时动态收集ES集群中的索引信息,并基于所述索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;
配置中心为日志分发集群提供包括索引名称和所述索引分配策略的配置信息;
所述日志分发集群中的每个节点获取索引的所述配置信息;
在ES集群接收到日志后根据所述索引名称将日志写入指定的索引中。
2.根据权利要求1所述的方法,其特征在于,所述拆分算法包括:
步骤1:当
Figure FDA0002303085460000011
时,
Figure FDA0002303085460000012
否则SplitNum=0,跳转到步骤3;
步骤2:
Figure FDA0002303085460000013
步骤3:返回IndexName,ShardNum,SplitNum;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,SplitNum为索引拆分的子索引数,为0表示不拆分。
3.根据权利要求1所述的方法,其特征在于,所述合并算法包括:
步骤1:当
Figure FDA0002303085460000014
时,mergeMode=d,跳转到步骤5,否则跳转步骤2;
步骤2:当
Figure FDA0002303085460000015
时,mergeMode=w,跳转到步骤5,否则跳转步骤3;
步骤3:当
Figure FDA0002303085460000021
时,mergeMode=m,跳转到步骤5,否则跳转步骤4;
步骤4:当
Figure FDA0002303085460000022
时,mergeMode=y,跳转到步骤5,否则跳转步骤5;
步骤5:返回IndexName,ShardNum,mergeMode;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,mergeMode表示按照天、周、月、年合并索引,取值为d,w,m,y。
4.根据权利要求1所述的方法,其特征在于,所述索引拆分策略为:根据索引名称将索引划分为M个子索引,每个子索引前缀相同,通过子索引id区别各个子索引。
5.一种提升基于ES的日志系统性能的索引分配装置,其特征在于,包括:索引分析模块、配置中心、日志分发集群和ES集群;其中:
所述索引分析模块,用于实时动态收集ES集群中的索引信息,并基于所述索引信息,通过索引拆分算法与合并算法确定出索引分配策略,其中,索引分配策略包括:索引拆分策略或索引合并策略;
所述配置中心,用于为所述日志分发集群提供包括索引名称和所述索引分配策略的配置信息;
所述日志分发集群,用于通过每个节点获取索引的所述配置信息;
所述ES集群,用于在接收到日志后根据所述索引名称将日志写入指定的索引中。
6.根据权利要求5所述的装置,其特征在于,所述拆分算法包括:
步骤1:当
Figure FDA0002303085460000031
时,
Figure FDA0002303085460000032
否则SplitNum=0,跳转到步骤3;
步骤2:
Figure FDA0002303085460000033
步骤3:返回IndexName,ShardNum,SplitNum;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,SplitNum为索引拆分的子索引数,为0表示不拆分。
7.根据权利要求5所述的装置,其特征在于,所述合并算法包括:
步骤1:当
Figure FDA0002303085460000034
时,mergeMode=d,跳转到步骤5,否则跳转步骤2;
步骤2:当
Figure FDA0002303085460000035
时,mergeMode=w,跳转到步骤5,否则跳转步骤3;
步骤3:当
Figure FDA0002303085460000036
时,mergeMode=m,跳转到步骤5,否则跳转步骤4;
步骤4:当
Figure FDA0002303085460000037
时,mergeMode=y,跳转到步骤5,否则跳转步骤5;
步骤5:返回IndexName,ShardNum,mergeMode;其中,IndexName为索引名,IndexSize为过去一段时间索引的平均大小,ShardNum为当前索引的分片数,N为ES集群节点数,R为索引副本数,ShardSize为最大分片大小,mergeMode表示按照天、周、月、年合并索引,取值为d,w,m,y。
8.根据权利要求5所述的装置,其特征在于,所述索引拆分策略为:根据索引名称将索引划分为M个子索引,每个子索引前缀相同,通过子索引id区别各个子索引。
CN201911232250.7A 2019-12-04 2019-12-04 一种提升基于es的日志系统性能的索引分配方法及装置 Active CN110990366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911232250.7A CN110990366B (zh) 2019-12-04 2019-12-04 一种提升基于es的日志系统性能的索引分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911232250.7A CN110990366B (zh) 2019-12-04 2019-12-04 一种提升基于es的日志系统性能的索引分配方法及装置

Publications (2)

Publication Number Publication Date
CN110990366A true CN110990366A (zh) 2020-04-10
CN110990366B CN110990366B (zh) 2024-02-23

Family

ID=70090149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911232250.7A Active CN110990366B (zh) 2019-12-04 2019-12-04 一种提升基于es的日志系统性能的索引分配方法及装置

Country Status (1)

Country Link
CN (1) CN110990366B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100160A (zh) * 2020-11-05 2020-12-18 四川新网银行股份有限公司 一种基于Elastic Search的双活实时数据仓库建设方法
CN112181993A (zh) * 2020-10-27 2021-01-05 广州市网星信息技术有限公司 业务数据查询方法、装置、服务器及存储介质
CN113485962A (zh) * 2021-06-30 2021-10-08 中国民航信息网络股份有限公司 日志文件的存储方法、装置、设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102270A1 (en) * 2003-11-10 2005-05-12 Risvik Knut M. Search engine with hierarchically stored indices
CN102779185A (zh) * 2012-06-29 2012-11-14 浙江大学 一种高可用分布式全文索引方法
CN103544261A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 一种海量结构化日志数据全局索引管理方法及装置
US20150356161A1 (en) * 2014-06-10 2015-12-10 Red Hat, Inc. Transport layer abstraction for clustering implementation
US20160092558A1 (en) * 2014-09-30 2016-03-31 Splunk Inc. Hybrid Cluster-Based Data Intake and Query
CN105912696A (zh) * 2016-04-25 2016-08-31 中国互联网络信息中心 一种基于对数归并的dns索引创建方法及查询方法
CN106649870A (zh) * 2017-01-03 2017-05-10 山东浪潮商用系统有限公司 一种搜索引擎分布式实现方法
CN107423336A (zh) * 2017-04-27 2017-12-01 努比亚技术有限公司 一种数据处理方法、装置及计算机存储介质
US10013440B1 (en) * 2014-10-31 2018-07-03 Amazon Technologies, Inc. Incremental out-of-place updates for index structures
CN109582758A (zh) * 2018-12-06 2019-04-05 重庆邮电大学 一种Elasticsearch索引分片优化方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102270A1 (en) * 2003-11-10 2005-05-12 Risvik Knut M. Search engine with hierarchically stored indices
CN102779185A (zh) * 2012-06-29 2012-11-14 浙江大学 一种高可用分布式全文索引方法
CN103544261A (zh) * 2013-10-16 2014-01-29 国家计算机网络与信息安全管理中心 一种海量结构化日志数据全局索引管理方法及装置
US20150356161A1 (en) * 2014-06-10 2015-12-10 Red Hat, Inc. Transport layer abstraction for clustering implementation
US20160092558A1 (en) * 2014-09-30 2016-03-31 Splunk Inc. Hybrid Cluster-Based Data Intake and Query
US10013440B1 (en) * 2014-10-31 2018-07-03 Amazon Technologies, Inc. Incremental out-of-place updates for index structures
CN105912696A (zh) * 2016-04-25 2016-08-31 中国互联网络信息中心 一种基于对数归并的dns索引创建方法及查询方法
CN106649870A (zh) * 2017-01-03 2017-05-10 山东浪潮商用系统有限公司 一种搜索引擎分布式实现方法
CN107423336A (zh) * 2017-04-27 2017-12-01 努比亚技术有限公司 一种数据处理方法、装置及计算机存储介质
CN109582758A (zh) * 2018-12-06 2019-04-05 重庆邮电大学 一种Elasticsearch索引分片优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
胡庆宝;姜晓巍;石京燕;程耀东;梁翠萍;: "基于Elasticsearch的实时集群日志采集和分析系统实现", 科研信息化技术与应用 *
郑义成;莫钦华;王海鸿;: "基于ElasticSearch的海量AIS数据存储方法", 指挥信息系统与技术 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181993A (zh) * 2020-10-27 2021-01-05 广州市网星信息技术有限公司 业务数据查询方法、装置、服务器及存储介质
CN112100160A (zh) * 2020-11-05 2020-12-18 四川新网银行股份有限公司 一种基于Elastic Search的双活实时数据仓库建设方法
CN113485962A (zh) * 2021-06-30 2021-10-08 中国民航信息网络股份有限公司 日志文件的存储方法、装置、设备和存储介质
CN113485962B (zh) * 2021-06-30 2023-08-01 中国民航信息网络股份有限公司 日志文件的存储方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN110990366B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
US10997163B2 (en) Data ingestion using file queues
CN106445676B (zh) 一种分布式数据计算的任务分配方法和任务分配装置
Hauglid et al. DYFRAM: dynamic fragmentation and replica management in distributed database systems
CN110990366B (zh) 一种提升基于es的日志系统性能的索引分配方法及装置
CN102984280B (zh) 针对社交类云存储网络应用的数据备份系统和方法
CN108900626B (zh) 一种云环境下数据存储方法、装置及系统
CN104065568A (zh) 一种Web服务器集群的路由方法
JPWO2013018808A1 (ja) 分散ストレージシステムおよび方法
JP2014525082A (ja) 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法
WO2011034625A1 (en) Distributed content storage and retrieval
CN111159140B (zh) 数据处理方法、装置、电子设备及存储介质
US20170344546A1 (en) Code dispersion hash table-based map-reduce system and method
US11080207B2 (en) Caching framework for big-data engines in the cloud
WO2015039569A1 (zh) 副本存储装置及副本存储方法
US20120246661A1 (en) Data arrangement calculating system, data arrangement calculating method, master unit and data arranging method
CN103077197A (zh) 一种数据存储方法装置
CN102148870A (zh) 一种云存储系统及其实现方法
CN113111038B (zh) 文件存储方法、装置、服务器及存储介质
Shi et al. A case study of tuning MapReduce for efficient Bioinformatics in the cloud
CN113420005A (zh) 数据存储方法、系统、电子设备及计算机存储介质
CN110858210A (zh) 数据查询方法及装置
CN104158902A (zh) 一种基于请求数的Hbase数据块分配方法及装置
US20160117107A1 (en) High Performance Hadoop with New Generation Instances
CN105740166B (zh) 缓存的读取、读取处理方法及装置
Cheng et al. Jingwei: An efficient and adaptable data migration strategy for deduplicated storage systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant