HBase数据清理方法及装置与流程

文档序号:27005244发布日期:2021-10-19 22:35阅读:829来源:国知局
HBase数据清理方法及装置与流程
hbase数据清理方法及装置
技术领域
1.本技术涉及数据处理技术领域,特别涉及大数据技术领域,具体涉及hbase数据清理方法及装置。


背景技术:

2.分布式列式存储数据库hbase的体系结构主要包含主节点master和从节点region server两部分,在涉及对表进行增、删、改、查等操作时,需要主节点master对外部请求进行管理和传递。
3.目前,对hbase进行数据清理方式主要为使用清理操作truncate对hbase进行清表处理,然而,由于主节点master只有一主一备两个实例,无法进行扩容,因此,当使用清理操作truncate对hbase进行频繁清表操作时,易造成主节点master的压力较大,进而影响hbase的整体性能。


技术实现要素:

4.针对现有技术中的问题,本技术提供一种hbase数据清理方法及装置,能够有效降低hbase集群中主节点的运行压力,并能够提高hbase数据清理过程的可靠性及效率,提高hbase集群的整体性能及运行稳定性。
5.为解决上述技术问题,本技术提供以下技术方案:
6.第一方面,本技术提供一种hbase数据清理方法,包括:
7.若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识;
8.自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中。
9.进一步地,在所述若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识之前,还包括:
10.将所述hbase集群当前的过期文件自动清理参数状态设置为可执行状态;
11.根据预先获取的数据表标识、列族名和超时阈值之间的对应关系,以及预先获取的建表配置信息,在所述hbase集群中创建添加有所述超时阈值的配置表。
12.进一步地,还包括:
13.获取针对所述hbase集群中数据表的写入请求,其中,该写入请求中包含有数据表标识、数据位置标识、写入数据及批次标识;
14.根据所述数据位置标识和写入数据,对所述数据表标识对应的数据表中的写入位置进行数据写入处理,并添加所述写入请求中的批次标识与所述写入数据之间的对应关系。
15.进一步地,还包括:
16.获取针对所述hbase集群中数据表的读取请求,其中,该读取请求中包含有数据表标识、数据位置标识及批次标识;
17.根据所述数据位置标识调取所述数据表标识对应的数据表中的读取位置的数据以供用户读取,并添加所述读取请求中的批次标识与所述读取位置之间的对应关系。
18.进一步地,还包括:
19.接收并存储hbase写入配置表,其中,该hbase写入配置表用于存储用户输入的数据表标识、数据位置标识、写入数据及批次标识之间的对应关系;
20.相对应的,所述获取针对所述hbase集群中数据表的写入请求,包括:
21.定时扫描所述hbase写入配置表中的新增任务,以获取针对所述hbase集群中数据表的写入请求。
22.进一步地,还包括:
23.接收并存储hbase读取配置表,其中,该hbase读取配置表用于存储用户输入的数据表标识、数据位置标识及批次标识之间的对应关系;
24.相对应的,所述获取针对所述hbase集群中数据表的读取请求,包括:
25.定时扫描所述hbase读取配置表中的新增任务,以获取针对所述hbase集群中数据表的读取请求。
26.进一步地,在所述若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识之前,还包括:
27.基于预设的文件合并时间及频率,对所述hbase集群进行文件合并处理。
28.第二方面,本技术提供一种hbase数据清理装置,包括:
29.超时验证模块,用于若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识;
30.批次清理模块,用于自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中。
31.第三方面,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的hbase数据清理方法。
32.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的hbase数据清理方法。
33.由上述技术方案可知,本技术提供的一种hbase数据清理方法及装置,方法包括:若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识;自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中,通过在hbase集群的文件合并期间自动查找当前存储数据时长超过超时阈值的目标数据表进行清表处理,能够有效降低hbase集群中主节点的运行压力,并能够提高hbase数据清理过程的可靠性及有效性,提高hbase集群的整体性能及运行稳定性;通过获取目标数据表当前的目标批次标识,并自所述目标数据表中清理带有所述目标批次标
识的数据,能够对待清理的数据进行分批次处理,无需针对全表进行查找及清表操作,进而能够进一步降低hbase集群中主节点的运行压力,并有效提高hbase数据清理的效率以及hbase的使用效率。
附图说明
34.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1是本技术实施例中的hbase数据清理装置分别与客户端设备及hbase集群之间的交互示意图。
36.图2是本技术实施例中的hbase数据清理方法的第一种流程示意图。
37.图3是本技术实施例中的hbase数据清理方法中步骤010和步骤020的流程示意图。
38.图4是本技术实施例中的hbase数据清理方法中步骤310和步骤320的流程示意图。
39.图5是本技术实施例中的hbase数据清理方法中步骤410和步骤420的流程示意图。
40.图6是本技术实施例中的hbase数据清理方法中步骤030和步骤311的流程示意图。
41.图7是本技术实施例中的hbase数据清理方法中步骤040和步骤411的流程示意图。
42.图8是本技术实施例中的hbase数据清理方法的第二种流程示意图。
43.图9是本技术实施例中的hbase数据清理装置的结构示意图。
44.图10是本技术应用实例中的基于时间周期的hbase数据清理方法的流程示意图。
45.图11是本技术实施例中的电子设备的结构示意图。
具体实施方式
46.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.需要说明的是,本技术公开的hbase数据清理方法及装置可用于大数据技术领域,也可用于除大数据技术领域之外的任意领域,本技术公开的hbase数据清理方法及装置的应用领域不做限定。
48.针对现有的hbase数据清理方式由于需要频繁采用清理指令truncate频繁清表,因而会造成主节点master的压力过大,进而会影响hbase集群的整体性能等问题,本技术实施例分别提供一种hbase数据清理方法、hbase数据清理装置、电子设备计算机可读存储介质,若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识;自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中,通过在hbase集群的文件合并期间自动查找当前存储数据时长超过超时阈值的目标数据表进行清表处理,能够有效降低hbase集群中主节点的运行压力,并能够提高hbase数据清理过程的可靠性及有效性,提高hbase集群的整体性能及运行稳定
性;通过获取目标数据表当前的目标批次标识,并自所述目标数据表中清理带有所述目标批次标识的数据,能够对待清理的数据进行分批次处理,无需针对全表进行查找及清表操作,进而能够进一步降低hbase集群中主节点的运行压力,并有效提高hbase数据清理的效率以及hbase的使用效率。
49.在本技术的一个或多个实施例中,hbase(hadoop database)是指高可靠性、高性能、面向列、可伸缩的分布式存储系统,由主节点master和从节点region server组成,其中,master也可以专门写作hmaster,region server也可以写作hregionserver或者regionserver等。
50.基于上述内容,本技术还提供一种用于实现本技术一个或多个实施例中提供的hbase数据清理方法的hbase数据清理装置,参见图1,该hbase数据清理装置可以自行或通过第三方服务器等与用户持有的客户端设备以及hbase集群的主节点之间通信连接,hbase数据清理装置可以为一种服务器,自客户端设备接收用户针对hbase集群的操作指令或请求,也可以自客户端设备、第三方数据库或本地获取相关的由用户预先设置的配置文件,例如本技术的一个或多个实施例中提及的基于时间戳的临界值ttl(time to live)配置表、批次配置表、清理频率配置表、hbase数据存储参数表、hbase写入配置表及hbase读取配置表等中的至少一个。所述hbase数据清理装置在自所述hbase集群的目标数据表中清理带有所述目标批次标识的数据之后,还可以将对应的数据清理结果发送至所述客户端设备进行显示,以使用户及时获知hbase集群中数据清理结果等。
51.可以理解的是,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(pda)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
52.上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
53.上述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本技术提交日尚未开发出的网络协议。所述网络协议例如可以包括tcp/ip协议、udp/ip协议、http协议、https协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的rpc协议(remote procedure call protocol,远程过程调用协议)、rest协议(representational state transfer,表述性状态转移协议)等。
54.具体通过下述各个实施例及应用实例分别进行详细说明。
55.为了解决现有的hbase数据清理方式由于需要频繁采用清理指令truncate频繁清表,因而会造成主节点master的压力过大,进而会影响hbase集群的整体性能等问题,本技术提供一种hbase数据清理方法的实施例,参见图2,由hbase数据清理装置执行的所述hbase数据清理方法具体包含有如下内容:
56.步骤100:若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识。
57.在步骤100中,文件合并可以指hbase数据库自带的文件大合并major compact过
程;所述若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表是指:利用hbase数据库文件大合并major compact过程中的自动清理机制,在定期进行文件大合并major compact过程中对超期数据进行清理。
58.可以理解的是,所述目标数据表是指所述hbase集群中当前存储数据时长超过超时阈值的数据表。具体可以引用基于时间戳的临界值ttl(time to live,用于限定数据的超时时间),即将基于时间戳的临界值ttl作为本技术的一个或多个实施例中提及的超时阈值的具体举例。
59.步骤200:自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中。
60.在步骤200中,hbase集群中内部管理机制在定期进行文件大合并major compact过程中会对超期数据进行清理;对需要频繁进行清理truncate操作的表需要根据设定ttl生命周期进行清理;同时用户在写入和读取该表时自动增加批次标识,每次只操作对应批次的数据,不再进行全表的清理truncate操作,需要清理的数据则在hbase数据库major compaction合并时根据ttl设置进行删除。
61.从上述描述可知,本技术实施例提供的hbase数据清理方法,通过在hbase集群的文件合并期间自动查找当前存储数据时长超过超时阈值的目标数据表进行清表处理,能够有效降低hbase集群中主节点的运行压力,并能够提高hbase数据清理过程的可靠性及有效性,提高hbase集群的整体性能及运行稳定性;通过获取目标数据表当前的目标批次标识,并自所述目标数据表中清理带有所述目标批次标识的数据,能够对待清理的数据进行分批次处理,无需针对全表进行查找及清表操作,进而能够进一步降低hbase集群中主节点的运行压力,并有效提高hbase数据清理的效率以及hbase的使用效率。
62.为了提高在文件合并期间对hbase中超期数据进行定时定量清理的可靠性及有效性,在本技术提供的hbase数据清理方法的一个实施例,参见图3,所述hbase数据清理方法中的步骤100之前还具体包含有如下内容:
63.步骤010:将所述hbase集群当前的过期文件自动清理参数状态设置为可执行状态。
64.具体来说,可以预先设置集群的文件合并和自动清理参数,登陆hbase集群读取过期文件自动清理参数hbase.store.delete.expired.storefile的参数值,当该参数设置为true时,无需操作;当该参数设置为false时,将该参数值修改为true,保证hbase数据库进行内部major compact合并时会自动删除过期的数据文件。
65.步骤020:根据预先获取的数据表标识、列族名和超时阈值之间的对应关系,以及预先获取的建表配置信息,在所述hbase集群中创建添加有所述超时阈值的配置表。
66.在步骤020中,所述建表配置信息是指用于配置在hbase中建表的相关信息,例如表名、列名(字段名)、压缩格式、存储格式等,根据用户需求按需配置。
67.具体来说,可以预先设置ttl配置表:用于配置建表时列族及对应的ttl时间;列族及ttl时间根据用户需求设置,该表的存储格式如下:
[0068]“表名,设置ttl的列族名,ttl时间(单位为秒)”。
[0069]
并设置批次配置表:用于配置hbase表读写数据时增加的批次信息,批次信息根据用户需求进行设置,该表的存储格式如下:
[0070]“表名,批次字段名,总批次数”。
[0071]
再设置清理频率配置表:配置hbase进行major compact合并和清理过期数据文件的时间和频率。
[0072]
以及hbase数据存储参数表:用于配置在hbase中建表的相关信息,包括:
[0073]“表名、列名(字段名)、压缩格式、存储格式等,根据用户需求按需配置”。
[0074]
而后在步骤010之后,连接hbase集群进行建表操作。通过读取管理配置模块中的ttl配置表,获取用户设置的表名、列族名和列族的ttl时间;通过读取hbase数据存储参数表,获取用户设置的压缩格式、存储格式等建表参数,在java代码中引入hbase的create命令,登陆集群完成建表和ttl设置操作。
[0075]
从上述描述可知,本技术实施例提供的hbase数据清理方法,通过将所述hbase集群当前的过期文件自动清理参数状态设置为可执行状态并进行建表处理,能够有效提高在文件合并期间对hbase中超期数据进行定时定量清理的可靠性及有效性,进而能够进一步降低hbase集群中主节点的运行压力,提高hbase集群的整体性能及运行稳定性。
[0076]
为了提高后续在数据清理阶段对带有所述目标批次标识的数据进行清理的效率及有效性,在本技术提供的hbase数据清理方法的一个实施例,参见图4,在所述hbase数据清理方法中的步骤100之前以及步骤020之后,或者在所述hbase数据清理方法中的步骤100之后还可以具体包含有如下内容:
[0077]
步骤310:获取针对所述hbase集群中数据表的写入请求,其中,该写入请求中包含有数据表标识、数据位置标识、写入数据及批次标识。
[0078]
步骤320:根据所述数据位置标识和写入数据,对所述数据表标识对应的数据表中的写入位置进行数据写入处理,并添加所述写入请求中的批次标识与所述写入数据之间的对应关系。
[0079]
从上述描述可知,本技术实施例提供的hbase数据清理方法,通过在对所述数据表标识对应的数据表中的写入位置进行数据写入处理的过程中,添加所述写入请求中的批次标识与所述写入数据之间的对应关系,能够有效提高后续在数据清理阶段对带有所述目标批次标识的数据进行清理的效率及有效性,进而能够进一步降低hbase集群中主节点的运行压力,提高hbase集群的整体性能及运行稳定性。
[0080]
为了提高后续在数据清理阶段对带有所述目标批次标识的数据进行清理的效率及有效性,在本技术提供的hbase数据清理方法的一个实施例,参见图5,在所述hbase数据清理方法中的步骤100之前以及步骤020之后,或者在所述hbase数据清理方法中的步骤100之后还可以具体包含有如下内容:
[0081]
步骤410:获取针对所述hbase集群中数据表的读取请求,其中,该读取请求中包含有数据表标识、数据位置标识及批次标识。
[0082]
步骤420:根据所述数据位置标识调取所述数据表标识对应的数据表中的读取位置的数据以供用户读取,并添加所述读取请求中的批次标识与所述读取位置之间的对应关系。
[0083]
从上述描述可知,本技术实施例提供的hbase数据清理方法,通过在对所述数据表标识对应的数据表中的读取位置进行数据读取处理的过程中,添加所述读取请求中的批次标识与所述读取位置之间的对应关系,能够有效提高后续在数据清理阶段对带有所述目标
批次标识的数据进行清理的效率及有效性,进而能够进一步降低hbase集群中主节点的运行压力,提高hbase集群的整体性能及运行稳定性。
[0084]
为了提供一种获取写入数据的具体方式,在本技术提供的hbase数据清理方法的一个实施例,参见图6,所述hbase数据清理方法中的步骤100之前还具体包含有如下内容:
[0085]
步骤030:接收并存储hbase写入配置表,其中,该hbase写入配置表用于存储用户输入的数据表标识、数据位置标识、写入数据及批次标识之间的对应关系。
[0086]
具体来说,可以预先构建并存储hbase写入配置表:用于存储用户写入的业务数据,用户将需要写入的业务数据信息配置到表中,包括表名、列族名、各列值、批次号等。
[0087]
相对应的,所述hbase数据清理方法中的步骤310具体包含有如下内容:
[0088]
步骤311:定时扫描所述hbase写入配置表中的新增任务,以获取针对所述hbase集群中数据表的写入请求。
[0089]
在步骤311中,可以定时扫描hbase写入配置表中的新增任务,并完成相应的写入数据操作。其中,写入数据:接收定时任务扫描模块指令,读取hbase写入配置表,获取用户需要写入的业务数据和批次信息,在java代码中引入hbase的put命令,登陆集群完成业务数据和批次数据写入操作。
[0090]
从上述描述可知,本技术实施例提供的hbase数据清理方法,通过应用hbase写入配置表,能够提高获取针对所述hbase集群中数据表的写入请求的便捷性及效率,进而能够进一步提高后续在数据清理阶段对带有所述目标批次标识的数据进行清理的效率及有效性。
[0091]
为了提供一种获取读取数据的具体方式,在本技术提供的hbase数据清理方法的一个实施例,参见图7,所述hbase数据清理方法中的步骤100之前还具体包含有如下内容:
[0092]
步骤040:接收并存储hbase读取配置表,其中,该hbase读取配置表用于存储用户输入的数据表标识、数据位置标识及批次标识之间的对应关系;
[0093]
具体来说,可以预先构建并存储hbase读取配置表:用于存储用户需要读取的业务数据,用户将需要读取的业务数据信息配置到表中,包括表名、列族名、各列名、批次号等。
[0094]
相对应的,所述hbase数据清理方法中的步骤410具体包含有如下内容:
[0095]
步骤411:定时扫描所述hbase读取配置表中的新增任务,以获取针对所述hbase集群中数据表的读取请求。
[0096]
在步骤411中,可以定时扫描hbase读取配置表中的新增任务,并完成相应的读取数据操作。其中,读取数据:接收定时任务扫描模块指令,读取hbase读取配置表,获取用户需要读取的表和批次信息,在java代码中引入hbase的scan命令,登陆集群完成特定批次的业务数据读取操作。
[0097]
从上述描述可知,本技术实施例提供的hbase数据清理方法,通过应用hbase读取配置表,能够提高获取针对所述hbase集群中数据表的读取请求的便捷性及效率,进而能够进一步提高后续在数据清理阶段对带有所述目标批次标识的数据进行清理的效率及有效性。
[0098]
为了提高对hbase集群进行文件合并处理的可靠性,在本技术提供的hbase数据清理方法的一个实施例,参见图8,所述hbase数据清理方法中的步骤100之:还具体包含有如下内容:
[0099]
步骤050:基于预设的文件合并时间及频率,对所述hbase集群进行文件合并处理。
[0100]
在步骤050中,可以读取清理频率配置表,根据设置的文件合并和清理时间和频率,定时触发数据清理模块完成集群文件合并和清理操作。即:接收定时任务扫描模块指令,触发hbase集群内部major compact机制,完成集群的major compact合并和超期数据清理操作。
[0101]
从上述描述可知,本技术实施例提供的hbase数据清理方法,通过基于预设的文件合并时间及频率检测是否达到文件合并周期,能够提高对hbase集群进行文件合并处理的可靠性,进而能够有效提高对hbase集群进行数据清理的可靠性,提高hbase集群的整体性能及运行稳定性。
[0102]
从软件层面来说,为了解决现有的hbase数据清理方式由于需要频繁采用清理指令truncate频繁清表,因而会造成主节点master的压力过大,进而会影响hbase集群的整体性能等问题,本技术提供一种用于执行所述hbase数据清理方法中全部或部分内容的hbase数据清理装置的实施例,参见图9,所述hbase数据清理装置具体包含有如下内容:
[0103]
超时验证模块10,用于若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识。
[0104]
在超时验证模块10中,文件合并可以指hbase数据库自带的文件大合并major compact过程;所述若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表是指:利用hbase数据库文件大合并major compact过程中的自动清理机制,在定期进行文件大合并major compact过程中对超期数据进行清理。
[0105]
批次清理模块20,用于自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中。
[0106]
在批次清理模块20中,hbase集群中内部管理机制在定期进行文件大合并major compact过程中会对超期数据进行清理;对需要频繁进行清理truncate操作的表需要根据设定ttl生命周期进行清理;同时用户在写入和读取该表时自动增加批次标识,每次只操作对应批次的数据,不再进行全表的清理truncate操作,需要清理的数据则在hbase数据库major compaction合并时根据ttl设置进行删除。
[0107]
本技术提供的hbase数据清理装置的实施例具体可以用于执行上述实施例中的hbase数据清理方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
[0108]
从上述描述可知,本技术实施例提供的hbase数据清理装置,通过在hbase集群的文件合并期间自动查找当前存储数据时长超过超时阈值的目标数据表进行清表处理,能够有效降低hbase集群中主节点的运行压力,并能够提高hbase数据清理过程的可靠性及有效性,提高hbase集群的整体性能及运行稳定性;通过获取目标数据表当前的目标批次标识,并自所述目标数据表中清理带有所述目标批次标识的数据,能够对待清理的数据进行分批次处理,无需针对全表进行查找及清表操作,进而能够进一步降低hbase集群中主节点的运行压力,并有效提高hbase数据清理的效率以及hbase的使用效率。
[0109]
为了进一步说明书本方案,本技术还提供一种hbase数据清理方法的具体应用实例,关于分布式列式存储hbase数据库领域,在需要频繁对hbase表进行数据清理操作时,提
供了一种基于时间周期的hbase数据清理方法,参见图10,解决了现有分布式列式存储数据库hbase频繁清表对主节点master压力过大的问题,通过避免频繁进行清理truncate操作实现降低hbase主节点master压力的功能。
[0110]
本方案的实现原理主要利用hbase数据库文件大合并major compact过程中的自动清理机制:hbase数据库中针对列族可以设置一个基于时间戳的临界值ttl(time to live,用于限定数据的超时时间),其内部管理机制在定期进行文件大合并major compact过程中会对超期数据进行清理;对需要频繁进行truncate清理操作的表需要根据设定ttl生命周期进行清理;同时用户在写入和读取该表时自动增加批次标识,每次只操作对应批次的数据,不再进行全表的truncate操作,需要清理的数据则在hbase数据库major compaction合并时根据ttl设置进行删除。
[0111]
上述内容技术实现总共分为如下几个模块:
[0112]
1、集群状态设置模块:该模块用于设置集群的文件合并和自动清理参数,登陆hbase集群读取hbase.store.delete.expired.storefile(删除hbase集群中过期文件)参数值,当该参数设置为true时,无需操作;当该参数设置为false时,将该参数值修改为true,保证hbase数据库进行内部major compact合并时会自动删除过期的数据文件。
[0113]
2、管理配置模块:该模块用于在hbase集群建表、读写数据、以及清理数据时各种配置与状态的管理,包括如下功能:
[0114]
(1)ttl配置表:用于配置建表时列族及对应的ttl时间;列族及ttl时间根据用户需求设置,该表的存储格式如下:
[0115]
表名,设置ttl的列族名,ttl时间(单位为秒);
[0116]
如:abc_def,column_family_info,86400。
[0117]
(2)批次配置表:用于配置hbase表读写数据时增加的批次信息,批次信息根据用户需求进行设置,该表的存储格式如下:
[0118]
表名,批次字段名,总批次数;
[0119]
如:abc_def,batch_info,12。
[0120]
(3)清理频率配置表:配置hbase进行major compact合并和清理过期数据文件的时间和频率;
[0121]
(4)hbase数据存储参数表:用于配置在hbase中建表的相关信息,包括表名、列名(字段名)、压缩格式、存储格式等,根据用户需求按需配置。
[0122]
(5)hbase写入配置表:用于存储用户写入的业务数据,用户将需要写入的业务数据信息配置到表中,包括表名、列族名、各列值、批次号等;
[0123]
(6)hbase读取配置表:用于存储用户需要读取的业务数据,用户将需要读取的业务数据信息配置到表中,包括表名、列族名、各列名、批次号等;
[0124]
3、建表模块:该模块用于连接hbase集群进行建表操作。通过读取管理配置模块中的ttl配置表,获取用户设置的表名、列族名和列族的ttl时间;通过读取hbase数据存储参数表,获取用户设置的压缩格式、存储格式等建表参数,在java代码中引入hbase的create命令,登陆集群完成建表和ttl设置操作。
[0125]
4、定时任务扫描模块:该模块具有如下两个定时任务功能,
[0126]
(1)定时扫描hbase写入配置表和hbase读取配置表中的新增任务,并触发读写数
据模块完成相应的写入和读取数据操作;
[0127]
(2)读取清理频率配置表,根据设置的文件合并和清理时间和频率,定时触发数据清理模块完成集群文件合并和清理操作。
[0128]
5、读写数据模块:该模块用于连接hbase集群进行数据的写入和读取操作。
[0129]
(1)写入数据:接收定时任务扫描模块指令,读取hbase写入配置表,获取用户需要写入的业务数据和批次信息,在java代码中引入hbase的put命令,登陆集群完成业务数据和批次数据写入操作;
[0130]
(2)读取数据:接收定时任务扫描模块指令,读取hbase读取配置表,获取用户需要读取的表和批次信息,在java代码中引入hbase的scan命令,登陆集群完成特定批次的业务数据读取操作。
[0131]
6、数据清理模块:该模块接收定时任务扫描模块指令,触发hbase集群内部major compact机制,完成集群的major compact合并和超期数据清理操作。
[0132]
基于上述技术方案,本技术应用实例提供的基于时间周期的hbase数据清理方法,通过避免频繁清理truncate操作实现降低hbase主节点master压力的功能,有效降低了清理truncate操作对hbase性能的影响,提高了hbase列式数据库的使用效率。
[0133]
从硬件层面来说,为了解决现有的hbase数据清理方式由于需要频繁采用清理指令truncate频繁清表,因而会造成主节点master的压力过大,进而会影响hbase集群的整体性能等问题,本技术提供一种用于实现所述hbase数据清理方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
[0134]
图11为本技术实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
[0135]
在一实施例中,hbase数据清理功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
[0136]
步骤100:若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识。
[0137]
在步骤100中,文件合并可以指hbase数据库自带的文件大合并major compact过程;所述若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表是指:利用hbase数据库文件大合并major compact过程中的自动清理机制,在定期进行文件大合并major compact过程中对超期数据进行清理。
[0138]
可以理解的是,所述目标数据表是指所述hbase集群中当前存储数据时长超过超时阈值的数据表。具体可以引用基于时间戳的临界值ttl(time to live,用于限定数据的超时时间),即将基于时间戳的临界值ttl作为本技术的一个或多个实施例中提及的超时阈值的具体举例。
[0139]
步骤200:自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中。
[0140]
在步骤200中,hbase集群中内部管理机制在定期进行文件大合并major compact过程中会对超期数据进行清理;对需要频繁进行清理truncate操作的表需要根据设定ttl
生命周期进行清理;同时用户在写入和读取该表时自动增加批次标识,每次只操作对应批次的数据,不再进行全表的清理truncate操作,需要清理的数据则在hbase数据库major compaction合并时根据ttl设置进行删除。
[0141]
从上述描述可知,本技术实施例提供的电子设备,通过在hbase集群的文件合并期间自动查找当前存储数据时长超过超时阈值的目标数据表进行清表处理,能够有效降低hbase集群中主节点的运行压力,并能够提高hbase数据清理过程的可靠性及有效性,提高hbase集群的整体性能及运行稳定性;通过获取目标数据表当前的目标批次标识,并自所述目标数据表中清理带有所述目标批次标识的数据,能够对待清理的数据进行分批次处理,无需针对全表进行查找及清表操作,进而能够进一步降低hbase集群中主节点的运行压力,并有效提高hbase数据清理的效率以及hbase的使用效率。
[0142]
在另一个实施方式中,hbase数据清理装置可以与中央处理器9100分开配置,例如可以将hbase数据清理装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现hbase数据清理功能。
[0143]
如图11所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
[0144]
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
[0145]
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
[0146]
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
[0147]
该存储器9140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
[0148]
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
[0149]
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以
和常规移动通信终端的情况相同。
[0150]
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
[0151]
本技术的实施例还提供能够实现上述实施例中的hbase数据清理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的hbase数据清理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
[0152]
步骤100:若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表,并获取该目标数据表当前的目标批次标识。
[0153]
在步骤100中,文件合并可以指hbase数据库自带的文件大合并major compact过程;所述若hbase集群当前处于文件合并期间,则在该hbase集群中查找当前存储数据时长超过超时阈值的目标数据表是指:利用hbase数据库文件大合并major compact过程中的自动清理机制,在定期进行文件大合并major compact过程中对超期数据进行清理。
[0154]
可以理解的是,所述目标数据表是指所述hbase集群中当前存储数据时长超过超时阈值的数据表。具体可以引用基于时间戳的临界值ttl(time to live,用于限定数据的超时时间),即将基于时间戳的临界值ttl作为本技术的一个或多个实施例中提及的超时阈值的具体举例。
[0155]
步骤200:自所述目标数据表中清理带有所述目标批次标识的数据,其中,所述目标批次标识预先添加至所述目标数据表中被用户操作的数据中。
[0156]
在步骤200中,hbase集群中内部管理机制在定期进行文件大合并major compact过程中会对超期数据进行清理;对需要频繁进行清理truncate操作的表需要根据设定ttl生命周期进行清理;同时用户在写入和读取该表时自动增加批次标识,每次只操作对应批次的数据,不再进行全表的清理truncate操作,需要清理的数据则在hbase数据库major compaction合并时根据ttl设置进行删除。
[0157]
从上述描述可知,本技术实施例提供的计算机可读存储介质,通过在hbase集群的文件合并期间自动查找当前存储数据时长超过超时阈值的目标数据表进行清表处理,能够有效降低hbase集群中主节点的运行压力,并能够提高hbase数据清理过程的可靠性及有效性,提高hbase集群的整体性能及运行稳定性;通过获取目标数据表当前的目标批次标识,并自所述目标数据表中清理带有所述目标批次标识的数据,能够对待清理的数据进行分批次处理,无需针对全表进行查找及清表操作,进而能够进一步降低hbase集群中主节点的运行压力,并有效提高hbase数据清理的效率以及hbase的使用效率。
[0158]
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0159]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0160]
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1