CN109871367A - 一种基于Redis和HBase的分布式冷热数据分离方法 - Google Patents
一种基于Redis和HBase的分布式冷热数据分离方法 Download PDFInfo
- Publication number
- CN109871367A CN109871367A CN201910150689.9A CN201910150689A CN109871367A CN 109871367 A CN109871367 A CN 109871367A CN 201910150689 A CN201910150689 A CN 201910150689A CN 109871367 A CN109871367 A CN 109871367A
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- redis
- hbase
- cold
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于Redis和HBase的分布式冷热数据分离方法,采用Redis、HBese和ElasticSearch三个集群,所述Redis集群、HBase集群和ElasticSearch集群相互连接;将冷热数据进行分离,其中Redis集群、HBase集群和ElasticSearch集群分别存放不同数据,分别进行增删改查的操作,查询的时候通过判断不同类型的查询来选用不同的方案从而实现冷热数据分离。本发明能够实现高效地存储、读写和查询。
Description
技术领域
本发明涉及计算机存储领域,特别是一种基于Redis和HBase的分布式冷热数据分离方法。
背景技术
现今全球数据存储量呈现爆炸式增长,企业及互联网数据以每年50%的速率在增长。数据量的不断增大给存储系统带来新的挑战。随着数据量的不断增长积累,数据也会呈现出访问热度不同的巨大差异。例如一个平台会不断地写入最新的数据,但通常情况下最近写入的数据访问频率会比很久之前的数据高很多,随着时间推移,许多早期存入的数据往往会到无人问津的程度。如果无论数据冷热情况,都采用同样的存储策略,是对集群资源的一种浪费。如何根据数据冷热程度对存储系统进行优化是一个亟待解决的问题。
发明内容
有鉴于此,本发明的目的是提出一种基于Redis和HBase的分布式冷热数据分离方法,能够实现高效的存储、读写和查询。
本发明采用以下方案实现:一种基于Redis和HBase的分布式冷热数据分离方法,采用Redis、HBese和ElasticSearch三个集群,所述Redis集群、HBase 集群和ElasticSearch集群相互连接;将冷热数据进行分离,其中Redis集群、 HBase集群和ElasticSearch集群分别存放不同数据,分别进行增删改查的操作,查询的时候通过判断不同类型的查询来选用不同的方案从而实现冷热数据分离。
进一步地,在分布式架构下,区域缓存了热数据,所述热数据包括最近访问的索引目录、元数据、文件,区域缓存的数据是主服务器的一部分,区域缓存部署一整套的Redis、ElasticSearch、HBase集群;客户端首先向最近的区域缓存进行请求,用以降低总部的带宽压力。
进一步地,在集中式部署架构下,将冷热数据分离,所述HBase集群用于存储冷数据,所述Redis集群用于缓存热数据,所述ElasticSearch集群用于存储数据的索引信息。
进一步地,所述ElasticSearch集群用于存储内容对象和文件对象的索引信息,包括行健和索引元数据;当存储内容对象和文件对象时,先将内容对象和文件对象的数据索引存储到ElasticSearch集群;当查询内容对象和文件对象时,从ElasticSearch返回符合查询条件的数据的行健和索引数据。
进一步地,当存储内容对象和文件对象时,HBase集群在内容对象列族存储内容对象,在文件对象列族存储文件对象,Redis集群则不区分列族,将内容对象和文件对象都作为键值对存储;当查询内容对象和文件对象时,根据ElasticSearch 集群返回的相关索引数据,先对Redis集群进行查询,获取符合条件的索引数据所对应的全部数据,如果Redis查询得不到结果,则说明所查询数据为冷数据,再转为对HBase进行查询,获取符合条件的索引数据所对应的全部数据。
进一步地,当进行ID查询的时候,直接对Redis集群进行查询,获取符合条件的索引数据所对应的全部数据;如果Redis查询得不到结果,再转为对HBase 集群进行查询,获取符合条件的索引数据所对应的全部数据。
进一步地,当获取内容对象的所有文件时,首先查询Redis集群,根据内容对象的ID获取到文件列表的ID,然后再根据文件列表里的ID从Redis集群获取所有文件;如果出现部分ID不存在于Redis的情况,则查询HBase集群。
进一步地,所述冷热数据的判定为:将数据被访问的热度分值作为冷热数据的判定标准;所述热度分值的计算采用下式:
式中,N表示数据被访问次数,R表示周期时间,L表示上一周期结束时间, V表示最近访问时间,θ表示损失因子;在一定周期内,数据被访问次数/周期得到的值再进行加权;
其中,所述损失因子θ的计算采用下式:
式中,E表示超时时间,T表示当前时间。
进一步地,通过热度分值的计算,对所有存在于Redis集群的数据进行排序;当内存空间不足时,根据分值优先淘汰低分值的数据,并将淘汰掉的数据转而存储进冷数据。
进一步地,对HBase集群中的长期不访问或者几乎不访问的冷数据,进行列式存储压缩,以此来降低物理空间占用和提高系统速度;其中,所述长期不访问或者几乎不访问的冷数据的判别标准为:当数据的冷度值h大于设定的阈值K,则该数据为长期不访问或者几乎不访问的冷数据,对这部分数据进行压缩;
其中,冷度值h的计算公式为:
其中,C代表访问次数,V表示最近访问时间,R表示周期时间,O代表数据的占用空间,U表示已用空间。
特别的,第一方面,本发明的逻辑架构主要包括存储、查询、异常、元数据、备份、监控和服务器模块。其中存储主要包括文件存储、内容对象存储、元数据存储,文件更新、内容对象更新、元数据更新,以及文件删除、内容对象删除、元数据删除,查询主要包括文件查询、内容对象查询、元数据查询,异常包括异常管理,备份主要是定时异地备份,服务器用来存储索引目录、元数据、文件信息。同时对于每个模块系统对外提供统一的接口进行访问。
第二方面,本发明的方案措施主要包括使用Redis集群作为缓存存储热数据,热数据由计算热度分值,并且实时判定。一旦内存不足时,根据热度分值,首先将低分值的数据从Redis集群中删除。同时,将热数据转存储为冷数据。HBase 集群存储所有的元数据,ElasticSearch集群存储数据的索引信息。将冷热数据分开存储,在查询时先通过ElasticSearch集群快速查找存储数据的索引信息,再进入Redis或HBase集群中查找索引信息对应的全部数据。充分利用了Redis内存型系统查找速度快的特点,弥补了HBase在查找速度上的不足。同时使用HBase 作为所有数据的存储系统则弥补了Redis处理的数据量较小的缺点。客户端可以向最近的区域缓存进行请求,大大降低总部的带宽压力,实现了冷热数据的有效分离,提高了系统整体对于数据的处理速度。
较佳的,基于上文所述方法,本发明还提供一适配系统,所述系统包括存储模块、查询模块、异常模块、元数据模块、备份模块和监控模块。存储模块主要包括添加新的内容对象和文件、对内容对象和文件进行更新以及对内容对象和文件进行删除。查询模块主要包括内容对象文件下载和内容对象元数据、文件元数据检索。异常模块主要用于处理运行过程中所抛出的异常,并抛出异常的信息。元数据模块主要包括内容对象和文件的元数据管理。备份模块主要包括定时异地备份的数据,包括MySQL用户监控等数据信息、Redis和HBase元数据数据信息、 ElasticSearch索引数据信息,建立一个异地的数据备份系统,该系统将主集群中的元数据和文件数据进行同步复制到辅集群中。当出现故障时,可由异地数据系统迅速恢复本地数据从而保证业务的连续性。备份系统之间网络为确保数据的及时性可采用专线的形式进行连接。监控模块实现对存储信息的有效监测,能够获取存储系统的读和写文件的用户数量、内容对象数量、文件数量、文件流量大小,已经系统的并发用户数;获取服务器节点的内存使用率、CPU使用率、存储空间使用率。并在各监控指标达到预定阈值时发出预警。
与现有技术相比,本发明有以下有益效果:本发明的冷热数据分离方案能够克服传统存储系统无法对数据进行分类处理的缺点,实现数据更为高效的存储、读写和查询等。
附图说明
图1为本发明实施例的逻辑原理示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和 /或它们的组合。
如图1所示,本实施例提供了一种基于Redis和HBase的冷热数据分离方法,采用Redis、HBese和ElasticSearch三个集群,所述Redis集群、HBase集群和 ElasticSearch集群相互连接;将冷热数据进行分离,其中Redis集群、HBase集群和ElasticSearch集群分别存放不同数据,分别进行增删改查的操作,查询的时候通过判断不同类型的查询来选用不同的方案从而实现冷热数据分离。
在本实施例中,在分布式架构下,区域缓存了热数据,所述热数据包括最近访问的索引目录、元数据、文件,区域缓存的数据是主服务器的一部分,区域缓存部署一整套的Redis、ElasticSearch、HBase集群;客户端首先向最近的区域缓存进行请求,用以降低总部的带宽压力。
在本实施例中,在集中式部署架构下,将冷热数据分离,所述HBase集群用于存储冷数据(主要用于存储内容对象的数据和文件的数据),所述Redis集群用于缓存热数据(主要存放经常访问的热数据),所述ElasticSearch集群用于存储数据的索引信息。
在本实施例中,所述ElasticSearch集群用于存储内容对象和文件对象的索引信息,包括行健和索引元数据;当存储内容对象和文件对象时,先将内容对象和文件对象的数据索引存储到ElasticSearch集群;当查询内容对象和文件对象时,从ElasticSearch返回符合查询条件的数据的行健和索引数据。
在本实施例中,当存储内容对象和文件对象时,HBase集群在内容对象列族存储内容对象,在文件对象列族存储文件对象,Redis集群则不区分列族,将内容对象和文件对象都作为键值对存储;当查询内容对象和文件对象时,根据 ElasticSearch集群返回的相关索引数据,先对Redis集群进行查询,获取符合条件的索引数据所对应的全部数据,如果Redis查询得不到结果,则说明所查询数据为冷数据,再转为对HBase进行查询,获取符合条件的索引数据所对应的全部数据。
在本实施例中,当进行ID查询的时候,则不需要所述的ElasticSearch集群返回相关的索引信息,可以直接对Redis集群进行查询,获取符合条件的索引数据所对应的全部数据;如果Redis查询得不到结果,再转为对HBase集群进行查询,获取符合条件的索引数据所对应的全部数据。
在本实施例中,当获取内容对象的所有文件时,首先查询Redis集群,根据内容对象的ID获取到文件列表的ID,然后再根据文件列表里的ID从Redis集群获取所有文件;如果出现部分ID不存在于Redis的情况,则查询HBase集群。
在本实施例中,所述冷热数据的判定为:将数据被访问的热度分值作为冷热数据的判定标准;所述热度分值的计算采用下式:
式中,N表示数据被访问次数,R表示周期时间,L表示上一周期结束时间, V表示最近访问时间,θ表示损失因子;在一定周期内,数据被访问次数/周期得到的值再进行加权;即在一定周期内,数据被访问次数/周期得到的值再进行加权,权值=∣上一周期结束时间-最近访问时间∣/周期时间,也就是说越靠近当前的时间的数据,权值会越大。且根据Redis的数据具有超时特性,加入损失因子;
其中,所述损失因子θ的计算采用下式:
式中,E表示超时时间,T表示当前时间。即距离当前时间越近的超时数据,其损失比重也就越大。
在本实施例中,通过热度分值的计算,对所有存在于Redis集群的数据进行排序;当内存空间不足时,根据分值优先淘汰低分值的数据,并将淘汰掉的数据转而存储进冷数据。
在本实施例中,对HBase集群中的长期不访问或者几乎不访问的冷数据,进行列式存储压缩,以此来降低物理空间占用和提高系统速度;其中,所述长期不访问或者几乎不访问的冷数据的判别标准为:当数据的冷度值h大于设定的阈值 K,则该数据为长期不访问或者几乎不访问的冷数据,对这部分数据进行压缩;
其中,冷度值h的计算公式为:
其中,C代表访问次数,V表示最近访问时间,R表示周期时间,O代表数据的占用空间,U表示已用空间。
在本实施例中,当客户端对Redis集群、HBase集群和ElasticSearch集群上的数据进行增加、删除、修改和查询等操作时,需要进行权限校验。如果用户有操作权限,则允许其操作;如果用户没有操作权限,则不允许其操作,并抛出异常。
特别的,如图1所示,第一方面,本实施例的逻辑架构主要包括存储、查询、异常、元数据、备份、监控和服务器模块。其中存储主要包括文件存储、内容对象存储、元数据存储,文件更新、内容对象更新、元数据更新,以及文件删除、内容对象删除、元数据删除,查询主要包括文件查询、内容对象查询、元数据查询,异常包括异常管理,备份主要是定时异地备份,服务器用来存储索引目录、元数据、文件信息。同时对于每个模块系统对外提供统一的接口进行访问。
其中,存储接口分为文件存储、内容对象存储和元数据存储。文件存储接口实现将内容对象中的文件和数据存储到Redis集群和HBase集群中。在Redis集群中只保存符合热数据要求的数据内容。内容对象存储实现将内容对象的数据存储到Elasticsearch和HBase集群中。元数据接口实现将元数据存储到Mysql中。其中还包含更新和删除,实现了文件更新、内容对象更新和元数据更新以及文件删除、内容对象删除和元数据删除等功能。查询接口实现了文件查询、内容对象查询和元数据查询等功能。异常接口实现了对分布式集群的权限管理功能和抛出异常功能。元数据接口实现了元数据的管理和系统配置管理等功能。用户接口提供给用户进行管理的功能。备份接口实现了Redis集群、HBase集群、ElasticSearch集群和Mysql数据库的备份。监控接口包括监控和预警等功能。实现对Redis集群、HBase集群和ElasticSearch集群进行监控和预警功能。
第二方面,本实施例的方案措施主要包括使用Redis集群作为缓存存储热数据,热数据由计算热度分值,并且实时判定。一旦内存不足时,根据热度分值,首先将低分值的数据从Redis集群中删除。同时,将热数据转存储为冷数据。HBase 集群存储所有的元数据,ElasticSearch集群存储数据的索引信息。将冷热数据分开存储,在查询时先通过ElasticSearch集群快速查找存储数据的索引信息,再进入Redis或HBase集群中查找索引信息对应的全部数据。充分利用了Redis内存型系统查找速度快的特点,弥补了HBase在查找速度上的不足。同时使用HBase 作为所有数据的存储系统则弥补了Redis处理的数据量较小的缺点。客户端可以向最近的区域缓存进行请求,大大降低总部的带宽压力,实现了冷热数据的有效分离,提高了系统整体对于数据的处理速度。
较佳的,在本实施例中,内容对象既可以包含文件和数据也可以只包含数据。现给出数据类型如下:
内容对象(ContentObject):一个内容对象指是一组具有共同业务属性的文件集合,包含了一组业务属性(元数据)以及一组文件。
内容对象类型(ContentObjectType):内容对象的分类,相同类型的内容对象具有相同的元数据模型(业务属性模型)。
元数据:指由业务系统传入的属性(业务属性,如保单号、投保单号等),区别于系统属性(如文件大小、校验码等)。
内容对象类型元数据模型:该类型的内容对象的元数据(业务属性)字段列表以及可用于搜索的字段。
文件:任何可存储的文件,具有自己的元数据,可以归属于某个内容对象,也可以不属于一个内容对象。
文件类型(FileType):文件的分类,相同类型的文件具有相同的元数据模型(业务属性模型)。
文件元数据模型:该类型文件的元数据(业务属性)字段列表以及可用于搜索的字段。
较佳的,基于上文所述方法,本发明还提供一适配系统,所述系统包括存储模块、查询模块、异常模块、元数据模块、备份模块和监控模块。存储模块主要包括添加新的内容对象和文件、对内容对象和文件进行更新以及对内容对象和文件进行删除。查询模块主要包括内容对象文件下载和内容对象元数据、文件元数据检索。异常模块主要用于处理运行过程中所抛出的异常,并抛出异常的信息。元数据模块主要包括内容对象和文件的元数据管理。备份模块主要包括定时异地备份的数据,包括MySQL用户监控等数据信息、Redis和HBase元数据数据信息、 ElasticSearch索引数据信息,建立一个异地的数据备份系统,该系统将主集群中的元数据和文件数据进行同步复制到辅集群中。当出现故障时,可由异地数据系统迅速恢复本地数据从而保证业务的连续性。备份系统之间网络为确保数据的及时性可采用专线的形式进行连接。监控模块实现对存储信息的有效监测,能够获取存储系统的读和写文件的用户数量、内容对象数量、文件数量、文件流量大小,已经系统的并发用户数;获取服务器节点的内存使用率、CPU使用率、存储空间使用率。并在各监控指标达到预定阈值时发出预警。
在本实施例中,所述存储模块在存储数据时,根据数据的类型,判断数据是否都存储在Redis集群、HBase集群、ElasticSearch集群。存储的时候先将内容对象上传到Redis集群、HBase集群和ElasticSearch集群。然后,将内容对象的索引信息,如行健,存储到ElasticSearch集群。再将内容对象里的所有数据存储到Redis集群和HBase集群中。更新数据时将同时对Redis集群、HBase集群和 ElasticSearch集群进行更新。删除数据时分为逻辑删除和物理删除,逻辑删除只会将数据标记为删除数据,不会真正删除,在逻辑删除数据之后,可以进行物理删除,此时数据将被真正删除,起到了防止误删数据的效果。同时,使用LRU-K 算法根据数据的历史访问记录来进行数据淘汰,构建一个链表保存缓存数据,首先将新数据插入到链表头部,每当缓存数据被访问,就将数据移到链表头部,当链表满的时候,再将链表尾部的数据丢弃。其具体实现为:
1.数据第一次被访问,加入到访问历史列表。
2.如果数据在访问历史列表里后没有达到K次访问,则按照一定规则(FIFO, LRU)淘汰。
3.当访问历史队列中的数据访问次数达到K次后,将数据索引从历史队列删除,将数据移到缓存队列中,并缓存此数据,缓存队列重新按照时间排序。
4.缓存数据队列中被再次访问后,重新排序。
5.需要淘汰数据时,淘汰缓存队列中排在末尾的数据,即:淘汰“倒数第K 次访问离现在最久”的数据。
在本实施例中,所述查询模块用于查询数据。根据数据的类型,判断数据是否都从Redis集群、Hbase集群和ElasticSearch集群进行读取操作。查询算法分为两种:1.如果查询方法是条件查询,则先查询ElasticSearch集群并返回相关的索引信息,接着查找Redis集群获取符合条件的索引数据所对应的全部数据。如果Redis查询得不到结果,再转为对HBase进行查询,获取符合条件的索引数据所对应的全部数据。2.如果是ID查询,则直接查找Redis集群寻找相关ID,查找不到内容再转为对Hbase集群进行查询。
在本实施例中,所述异常模块由异常管理类、内容管理异常类及其派生的子类构成,描述了系统所有可能发生的异常情况。异常模块的具体操作步骤如下:根据模块的不同,抛出的异常类型等信息也将不同。然后根据抛出的异常,对异常所在的位置进行判断。最后根据异常所在处,判断异常的原因。
在本实施例中,所述元数据模块用于管理元数据。该模块建立与Mysql数据库的连接。对Mysql数据库的元数据进行元数据管理时,如果是新增元数据,应规范元数据的字段名,数据类型,长度,健别,是否允许为空和中文说明等。如果是修改元数据时,应对修改的操作是否规范进行校验。如果是删除元数据时,应校验已存储的数据是否包含有该字段。如果是查询元数据时,根据条件,返回所需的元数据信息。
在本实施例中,所述备份模块包括对Mysql、Redis集群、HBase集群和ElasticSearch集群进行备份。HBase数据库和文件备份采用的方案是第一次进行全备份,后面为永久增量备份。HBase备份采用的是主从模式,通过指定备集群,将HLog里面的数据数据从主集群到备集群延时较低,基本不会产生多少性能的影响,并且主集群的事务在备集群也可以得到保证。通过构造较好的Log系统加上 check point来实现,可以实现读写分离,主集群可以担当读写服务,但是备集群一般只承担读服务。备份模块首先根据数据库类型的不同,采取不同的方案进行备份。如果数据库是ElasticSearch,则ElasticSearch采用hdfs方式进行备份,主集群将数据备份到hdfs上,备用集群从hdfs上恢复数据。如果数据库是Mysql,则Mysql数据库是采用Mysqldump工具进行Mysql数据进行备份。Mysqldump是MySQL官方提供的逻辑备份工具。如果数据库是HBase,则HBase数据库是运用 HBase的Replication机制,是通过WALEdit和HLog来实现的。当请求发送给 master cluster时,HLog日志放入hdfs的同时进入replication队列中,由slave cluster通过zookeeper获取并写入slave的表中。
在本实施例中,所述监控模块用于对Redis集群、HBase集群、ElasticSearch 集群进行监控,共分为存储系统的监控和服务器的监控。对于存储系统的监控,主要是需要监控系统的读写的用户数、读写的文件数、读写的文件数量以及系统的并发用户数等,通过在系统所对应的方法中调用监控指标的收集方法(收集的方法需要采用同步机制避免数据重复记录或丢失),来收集此时系统中的相应的指标数据,并通过封装接口可以实时的获取监控指标的数据。对于服务器的监控,需要监控的有服务器的内存、CPU、存储空间等。通过在存储节点执行shell命令得到服务器节点的相应信息并返回。根据监控的需求,启动对Redis集群、HBase 集群和ElasticSearch集群的监控功能。从接口返回Redis集群、HBase集群和ElasticSearch集群的监控信息。对Redis集群进行监控,能够获取内存空间、CPU 占有率、读写率及集群状态等信息。对HBase集群进行监控,能够获取内存空间、 CPU占有率、读写率及集群状态等信息。对ElasticSearch集群进行监控,能够获取内存空间、CPU占有率、读写率及集群状态等信息。
在本实施例中,所述缓存层为Redis集群。Redis为内存型KV系统,虽然数据处理量小于Hbase,但是Redis具有更高的读写性能,非常适用于做缓存。在我们的方案中,Redis集群负责存储热数据内容。
本实施例的基于分布式存储系统结合了Redis、HBase和ElasticSearch各自的优点,实现了数据的快速存储和查询,克服了传统单一式的存储系统无法分别处理不同热度数据的缺点。此外,本实施例的分布式系统也实现异地备份等功能,更有利于增强系统的稳定性、可用性和可靠性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/ 或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (10)
1.一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:采用Redis、HBese和ElasticSearch三个集群,所述Redis集群、HBase集群和ElasticSearch集群相互连接;将冷热数据进行分离,其中Redis集群、HBase集群和ElasticSearch集群分别存放不同数据,分别进行增删改查的操作,查询的时候通过判断不同类型的查询来选用不同的方案从而实现冷热数据分离。
2.根据权利要求1所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:在分布式架构下,区域缓存了热数据,所述热数据包括最近访问的索引目录、元数据、文件,区域缓存的数据是主服务器的一部分,区域缓存部署一整套的Redis、ElasticSearch、HBase集群;客户端首先向最近的区域缓存进行请求,用以降低总部的带宽压力。
3.根据权利要求1所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:在集中式部署架构下,将冷热数据分离,所述HBase集群用于存储冷数据,所述Redis集群用于缓存热数据,所述ElasticSearch集群用于存储数据的索引信息。
4.根据权利要求3所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:所述ElasticSearch集群用于存储内容对象和文件对象的索引信息,包括行健和索引元数据;当存储内容对象和文件对象时,先将内容对象和文件对象的数据索引存储到ElasticSearch集群;当查询内容对象和文件对象时,从ElasticSearch返回符合查询条件的数据的行健和索引数据。
5.根据权利要求4所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:当存储内容对象和文件对象时,HBase集群在内容对象列族存储内容对象,在文件对象列族存储文件对象,Redis集群则不区分列族,将内容对象和文件对象都作为键值对存储;当查询内容对象和文件对象时,根据ElasticSearch集群返回的相关索引数据,先对Redis集群进行查询,获取符合条件的索引数据所对应的全部数据,如果Redis查询得不到结果,则说明所查询数据为冷数据,再转为对HBase进行查询,获取符合条件的索引数据所对应的全部数据。
6.根据权利要求4所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:当进行ID查询的时候,直接对Redis集群进行查询,获取符合条件的索引数据所对应的全部数据;如果Redis查询得不到结果,再转为对HBase集群进行查询,获取符合条件的索引数据所对应的全部数据。
7.根据权利要求4所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:当获取内容对象的所有文件时,首先查询Redis集群,根据内容对象的ID获取到文件列表的ID,然后再根据文件列表里的ID从Redis集群获取所有文件;如果出现部分ID不存在于Redis的情况,则查询HBase集群。
8.根据权利要求1所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:所述冷热数据的判定为:将数据被访问的热度分值作为冷热数据的判定标准;所述热度分值的计算采用下式:
式中,N表示数据被访问次数,R表示周期时间,L表示上一周期结束时间,V表示最近访问时间,θ表示损失因子;在一定周期内,数据被访问次数/周期得到的值再进行加权;
其中,所述损失因子θ的计算采用下式:
式中,E表示超时时间,T表示当前时间。
9.根据权利要求8所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:通过热度分值的计算,对所有存在于Redis集群的数据进行排序;当内存空间不足时,根据分值优先淘汰低分值的数据,并将淘汰掉的数据转而存储进冷数据。
10.根据权利要求3所述的一种基于Redis和HBase的分布式冷热数据分离方法,其特征在于:对HBase集群中的长期不访问或者几乎不访问的冷数据,进行列式存储压缩,以此来降低物理空间占用和提高系统速度;其中,所述长期不访问或者几乎不访问的冷数据的判别标准为:当数据的冷度值h大于设定的阈值K,则该数据为长期不访问或者几乎不访问的冷数据,对这部分数据进行压缩;
其中,冷度值h的计算公式为:
其中,C代表访问次数,V表示最近访问时间,R表示周期时间,O代表数据的占用空间,U表示已用空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910150689.9A CN109871367A (zh) | 2019-02-28 | 2019-02-28 | 一种基于Redis和HBase的分布式冷热数据分离方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910150689.9A CN109871367A (zh) | 2019-02-28 | 2019-02-28 | 一种基于Redis和HBase的分布式冷热数据分离方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109871367A true CN109871367A (zh) | 2019-06-11 |
Family
ID=66919535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910150689.9A Pending CN109871367A (zh) | 2019-02-28 | 2019-02-28 | 一种基于Redis和HBase的分布式冷热数据分离方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871367A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674432A (zh) * | 2019-09-09 | 2020-01-10 | 中国平安财产保险股份有限公司 | 二级缓存方法、装置及计算机可读存储介质 |
CN110781238A (zh) * | 2019-10-08 | 2020-02-11 | 中国建设银行股份有限公司 | 基于Redis、Hbase结合的客户视图缓存方法和装置 |
CN110825748A (zh) * | 2019-11-05 | 2020-02-21 | 北京平凯星辰科技发展有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN111159140A (zh) * | 2019-12-31 | 2020-05-15 | 咪咕文化科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111367996A (zh) * | 2020-02-25 | 2020-07-03 | 深圳联友科技有限公司 | 基于kv索引的热数据增量同步方法及装置 |
CN111427844A (zh) * | 2020-04-15 | 2020-07-17 | 成都信息工程大学 | 一种面向文件分级存储的数据迁移系统及方法 |
CN111552664A (zh) * | 2020-03-24 | 2020-08-18 | 福建天泉教育科技有限公司 | 存储系统冷热智能调度的方法、存储介质 |
CN111625600A (zh) * | 2020-05-21 | 2020-09-04 | 杭州安恒信息技术股份有限公司 | 数据存储的处理方法、系统、计算机设备及存储介质 |
CN111694854A (zh) * | 2020-06-05 | 2020-09-22 | 北京百度网讯科技有限公司 | 一种区域进出监控方法、装置、电子设备及存储介质 |
CN111737226A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种基于Redis集群优化HBase集群性能的方法 |
CN112035427A (zh) * | 2020-09-02 | 2020-12-04 | 中国平安财产保险股份有限公司 | 基于Redis和HBase的数据查询方法及相关设备 |
CN112395318A (zh) * | 2020-11-24 | 2021-02-23 | 福州大学 | 一种基于HBase+Redis的分布式存储中间件 |
CN112486943A (zh) * | 2020-12-28 | 2021-03-12 | 福州大学 | 基于FastDFS+Redis的分布式文件存储系统及方法 |
CN113297269A (zh) * | 2021-02-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN113377773A (zh) * | 2021-06-09 | 2021-09-10 | 浙江工业大学 | 一种人脸识别测试系统的数据集存储方法 |
CN114237508A (zh) * | 2021-12-16 | 2022-03-25 | 中国农业银行股份有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103167036A (zh) * | 2013-01-28 | 2013-06-19 | 浙江大学 | 基于分布式多级缓存系统的栅格数据存取方法 |
CN106528002A (zh) * | 2016-12-06 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种基于时间的存储调度方法 |
CN108319654A (zh) * | 2017-12-29 | 2018-07-24 | 中国银联股份有限公司 | 计算系统、冷热数据分离方法及装置、计算机可读存储介质 |
CN108763436A (zh) * | 2018-05-25 | 2018-11-06 | 福州大学 | 一种基于ElasticSearch与HBase的分布式数据存储系统 |
CN109284351A (zh) * | 2018-08-14 | 2019-01-29 | 青海大学 | 一种基于HBase数据库的数据查询方法 |
-
2019
- 2019-02-28 CN CN201910150689.9A patent/CN109871367A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103167036A (zh) * | 2013-01-28 | 2013-06-19 | 浙江大学 | 基于分布式多级缓存系统的栅格数据存取方法 |
CN106528002A (zh) * | 2016-12-06 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种基于时间的存储调度方法 |
CN108319654A (zh) * | 2017-12-29 | 2018-07-24 | 中国银联股份有限公司 | 计算系统、冷热数据分离方法及装置、计算机可读存储介质 |
CN108763436A (zh) * | 2018-05-25 | 2018-11-06 | 福州大学 | 一种基于ElasticSearch与HBase的分布式数据存储系统 |
CN109284351A (zh) * | 2018-08-14 | 2019-01-29 | 青海大学 | 一种基于HBase数据库的数据查询方法 |
Non-Patent Citations (1)
Title |
---|
李强等: "《云制造理论体系及实践应用》", 31 May 2018 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674432B (zh) * | 2019-09-09 | 2023-11-21 | 中国平安财产保险股份有限公司 | 二级缓存方法、装置及计算机可读存储介质 |
CN110674432A (zh) * | 2019-09-09 | 2020-01-10 | 中国平安财产保险股份有限公司 | 二级缓存方法、装置及计算机可读存储介质 |
CN110781238B (zh) * | 2019-10-08 | 2022-09-13 | 中国建设银行股份有限公司 | 基于Redis、Hbase结合的客户视图缓存方法和装置 |
CN110781238A (zh) * | 2019-10-08 | 2020-02-11 | 中国建设银行股份有限公司 | 基于Redis、Hbase结合的客户视图缓存方法和装置 |
CN110825748A (zh) * | 2019-11-05 | 2020-02-21 | 北京平凯星辰科技发展有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN110825748B (zh) * | 2019-11-05 | 2023-05-16 | 平凯星辰(北京)科技有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN111159140A (zh) * | 2019-12-31 | 2020-05-15 | 咪咕文化科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111159140B (zh) * | 2019-12-31 | 2023-09-19 | 咪咕文化科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111367996A (zh) * | 2020-02-25 | 2020-07-03 | 深圳联友科技有限公司 | 基于kv索引的热数据增量同步方法及装置 |
CN111367996B (zh) * | 2020-02-25 | 2023-01-24 | 深圳联友科技有限公司 | 基于kv索引的热数据增量同步方法及装置 |
CN111552664A (zh) * | 2020-03-24 | 2020-08-18 | 福建天泉教育科技有限公司 | 存储系统冷热智能调度的方法、存储介质 |
CN111552664B (zh) * | 2020-03-24 | 2023-05-23 | 福建天泉教育科技有限公司 | 存储系统冷热智能调度的方法、存储介质 |
CN111427844B (zh) * | 2020-04-15 | 2023-05-19 | 成都信息工程大学 | 一种面向文件分级存储的数据迁移系统及方法 |
CN111427844A (zh) * | 2020-04-15 | 2020-07-17 | 成都信息工程大学 | 一种面向文件分级存储的数据迁移系统及方法 |
CN111625600B (zh) * | 2020-05-21 | 2023-10-31 | 杭州安恒信息技术股份有限公司 | 数据存储的处理方法、系统、计算机设备及存储介质 |
CN111625600A (zh) * | 2020-05-21 | 2020-09-04 | 杭州安恒信息技术股份有限公司 | 数据存储的处理方法、系统、计算机设备及存储介质 |
CN111737226B (zh) * | 2020-05-28 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种基于Redis集群优化HBase集群性能的方法 |
CN111737226A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种基于Redis集群优化HBase集群性能的方法 |
CN111694854B (zh) * | 2020-06-05 | 2023-07-21 | 北京百度网讯科技有限公司 | 一种区域进出监控方法、装置、电子设备及存储介质 |
CN111694854A (zh) * | 2020-06-05 | 2020-09-22 | 北京百度网讯科技有限公司 | 一种区域进出监控方法、装置、电子设备及存储介质 |
CN112035427A (zh) * | 2020-09-02 | 2020-12-04 | 中国平安财产保险股份有限公司 | 基于Redis和HBase的数据查询方法及相关设备 |
CN112395318A (zh) * | 2020-11-24 | 2021-02-23 | 福州大学 | 一种基于HBase+Redis的分布式存储中间件 |
CN112486943A (zh) * | 2020-12-28 | 2021-03-12 | 福州大学 | 基于FastDFS+Redis的分布式文件存储系统及方法 |
CN113297269A (zh) * | 2021-02-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN113377773A (zh) * | 2021-06-09 | 2021-09-10 | 浙江工业大学 | 一种人脸识别测试系统的数据集存储方法 |
CN114237508A (zh) * | 2021-12-16 | 2022-03-25 | 中国农业银行股份有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871367A (zh) | 一种基于Redis和HBase的分布式冷热数据分离方法 | |
US9672267B2 (en) | Hybrid data management system and method for managing large, varying datasets | |
AU2015240916B2 (en) | File storage using variable stripe sizes | |
CN104050249B (zh) | 分布式查询引擎系统和方法及元数据服务器 | |
US9602424B1 (en) | Connection balancing using attempt counts at distributed storage systems | |
US9274710B1 (en) | Offset-based congestion control in storage systems | |
EP3126999B1 (en) | Session management in distributed storage systems | |
US7783615B1 (en) | Apparatus and method for building a file system index | |
US9519510B2 (en) | Atomic writes for multiple-extent operations | |
US10372685B2 (en) | Scalable file storage service | |
CN111352925B (zh) | 策略驱动的数据放置和信息生命周期管理 | |
WO2018059032A1 (zh) | 一种虚拟节点的数据迁移方法和虚拟节点 | |
CN108763436A (zh) | 一种基于ElasticSearch与HBase的分布式数据存储系统 | |
CN110162528A (zh) | 海量大数据检索方法及系统 | |
CN104050250B (zh) | 一种分布式键-值查询方法和查询引擎系统 | |
US9449008B1 (en) | Consistent object renaming in distributed systems | |
US20150278397A1 (en) | Namespace management in distributed storage systems | |
US8135763B1 (en) | Apparatus and method for maintaining a file system index | |
CN113377868B (zh) | 一种基于分布式kv数据库的离线存储系统 | |
CN109344122B (zh) | 一种基于文件预创策略的分布式元数据管理方法及系统 | |
US11250019B1 (en) | Eventually consistent replication in a time-series database | |
WO2004055675A1 (ja) | ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム | |
CN106021585A (zh) | 一种基于时空特性的交通事件视频存取方法及系统 | |
US11263270B1 (en) | Heat balancing in a distributed time-series database | |
US11573981B1 (en) | Auto-scaling using temporal splits in a time-series database |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190611 |