一种对多HBase集群的数据操作方法及装置与流程

文档序号:33543195发布日期:2023-03-22 09:31阅读:50来源:国知局
一种对多HBase集群的数据操作方法及装置与流程
一种对多hbase集群的数据操作方法及装置
技术领域
1.本发明涉及云计算技术领域,具体而言,涉及一种对多hbase集群的数据操作方法及装置。


背景技术:

2.随着企业数字化转型,企业内部一般会建立自己的数据仓库系统,对于数据量庞大,实时性要求比较高的业务,一般会采用搭建hbase集群的方式来支持业务处理。其中,hbase即hadoopdatabase,本身单个hbase集群是高可靠,高性能,易伸缩的分布式存储系统,但随着企业要处理的业务越来越多,数据量也越来越大,对数据的可用性要求也越来越高,此时企业一般会搭建多个hbase集群,然后对多个hbase集群进行管理以实现集群的高可用性。目前现有技术中,一般是基于zk集群来管理多个hbase集群,高可用性与zk集群强相关,但是在使用zk集群的方式中,当对多hbase集群的访问量比较大时,流量会首先打到zk集群上,此时zk集群压力过大,可能会会出现zk集群长时间锁住的现象,甚至出现zk集群不能提供服务等问题,从而给hbase集群提供的包括读和写数据在内的服务造成很大的负面影响。
3.因此,有必要提供一种可靠的管理多hbase集群的方法。


技术实现要素:

4.本发明提供一种对对多hbase集群的数据操作方法及装置,用以克服现有技术中存在的至少一个技术问题。
5.根据本发明实施例的第一方面,提供一种对多hbase集群的数据操作方法,包括:
6.接收客户端发送的对多hbase集群进行数据操作的数据操作请求;所述数据操作请求中携带有所述数据操作请求对应的目标hbase集群标识信息;所述目标hbase集群标识信息所标识的hbase集群属于所述多hbase集群的子集群;
7.判断所述数据操作请求是否用于请求从所述多hbase集群中读取数据,得到判断结果;
8.若所述判断结果表明所述数据操作请求用于请求从所述多hbase集群中读取数据,则确定所述数据操作请求对应的目标数据表后,基于用户预先配置的集群路由表确定所述目标数据表对应的所述子集群中的目标hbase集群;所述集群路由表包括多个目标数据表中任意一个目标数据表与所述任意一个目标数据表对应的所述子集群中目标hbase集群的关联信息;所述目标hbase集群包括至少两个hbase集群;
9.基于所述目标hbase集群对所述数据操作请求进行响应,并将响应结果反馈到所述客户端。
10.优选的,所述接收客户端发送的对多hbase集群进行数据操作的数据操作请求之前,包括:
11.接收用户基于客户端发送的对所述对多hbase集群的访问配置信息,所述访问配
置信息用于基于所述用户的归属地确定所述多hbase集群中的子集群。
12.优选的,所述接收客户端发送的对多hbase集群进行数据操作的数据操作请求之前,包括:预先为所述多hbase集群的每个用户分配用户标识信息,所述数据操作请求还携带有对应的用户标识信息;
13.所述目标hbase集群包括所述目标hbase集群所归属的子集群中的两个集群,所述两个集群包括第一hbase集群和第二hbase集群;
14.基于预定的规则,对所述第一hbase集群和所述第二hbase集群在预定的时间段内响应携带有同一用户标识信息的数据操作请求的网络流量进行分配。
15.优选的,所述接收客户端发送的对多hbase集群进行数据操作的数据操作请求之前,包括:预先为所述多hbase集群的每个用户分配用户标识信息,所述数据操作请求还携带有对应的用户标识信息;
16.所述目标hbase集群包括所述目标hbase集群所归属的子集群中的至少三个集群,所述至少三个集群包括第一hbase集群、第二hbase集群和第三hbase集群;
17.基于预定的规则,对所述第一hbase集群和所述第二hbase集群在预定的时间段内响应携带有同一用户标识信息的数据操作请求的网络流量进行分配;
18.所述第三hbase集群用于所述第一hbase集群和所述第二hbase集群都不可用时对所述数据操作请求进行响应。
19.优选的,所述按预定的规则,对所述第一hbase集群和所述第二hbase集群在预定的时间段内响应携带有同一用户标识信息的数据操作请求的网络流量进行分配,具体包括:
20.将所述第一hbase集群的物理访问地址虚拟为第一数量的逻辑访问地址,将所述第二hbase集群的物理访问地址虚拟为第二数量的逻辑访问地址,所述第一数量和所述第二数量的比值符合所述网络流量进行分配时的比例;
21.以所述客户端的ip地址和访问时间为参数进行哈希运算,得到哈希运算的结果;
22.按预定规则将所述哈希运算的结果映射到逻辑访问地址,将所述逻辑访问地址所属的集群确定为对所述数据操作请求进行响应的集群。
23.优选的,所述基于所述目标hbase集群对所述数据操作请求进行响应之前,包括:
24.确定对所述数据操作请求进行响应的响应集群;对所述响应集群响应所述数据操作请求的响应状态进行评估,若所述响应状态低于预定能力,则在所述响应集群响应所述数据操作请求的上一次数据操作请求所得的评分的基础上进行降分处理,得到所述降分处理后的评分。
25.优选的,若所述降分处理后的评分小于所述响应能力阈分值,则将所述响应集群标识为不可用状态,并将所述响应集群的标识信息添加到待探测恢复队列列表;所述待探测恢复队列列表中包括若干标记为不可用状态的hbase集群的标识信息;
26.所述将所述响应集群标识为不可用状态之后,包括:
27.对所述响应集群的健康性进行探测,当监测到所述响应集群的健康指数超过预定阈值后,将所述响应集群标记为可用状态;将所述响应集群的标识信息从所述待探测恢复队列列表中移除。
28.优选的,若所述判断结果表明所述数据操作请求用于请求从所述多hbase集群中
写入数据,则确定所述数据操作请求对应的目标数据表后,基于用户预先配置的集群路由表确定所述目标数据表对应的所述子集群中的目标hbase集群;
29.将所述数据操作请求对应的数据写入所述目标hbase集群中的所有hbase集群。
30.根据本发明实施例的第二方面,提供一种对多hbase集群的数据操作装置,包括:
31.数据操作请求接收模块,用于接收客户端发送的对多hbase集群进行数据操作的数据操作请求;所述数据操作请求中携带有所述数据操作请求对应的目标hbase集群标识信息;所述目标hbase集群标识信息所标识的hbase集群属于所述多hbase集群的子集群;
32.操作类型判断模块,用于判断所述数据操作请求是否用于请求从所述多hbase集群中读取数据,得到判断结果;
33.目标集群确定模块,用于若所述判断结果表明所述数据操作请求用于请求从所述多hbase集群中读取数据,则确定所述数据操作请求对应的目标数据表后,基于用户预先配置的集群路由表确定所述目标数据表对应的所述子集群中的目标hbase集群;所述集群路由表包括多个目标数据表中任意一个目标数据表与所述任意一个目标数据表对应的所述子集群中目标hbase集群的关联信息;所述目标hbase集群包括至少两个hbase集群;
34.请求响应模块,用于基于所述目标hbase集群对所述数据操作请求进行响应,并将响应结果反馈到所述客户端。
35.优选的,所述装置还包括访问配置信息接收模块,用于接收用户基于客户端发送的对所述对多hbase集群的访问配置信息,所述访问配置信息用于基于所述用户的归属地确定所述多hbase集群中的子集群。
36.本说明书一个实施例至少能够达到以下有益效果:服务平台接收到客户端发送的对多hbase集群进行数据操作的数据操作请求后,可以根据该数据操作请求中携带的该数据操作请求对应的目标hbase集群标识信息确定处理该数据操作请求的目标hbase集群,该目标hbase集群是多hbase集群的子集群,再由该目标hbase集群中的具体某个hbase集群对数据操作请求进行响应。即首先根据数据操作请求先确定对应的目标数据表,再基于用户预先配置的集群路由表确定目标数据表对应的子集群中的目标hbase集群,最后由目标hbase集群中的某个安装了若干hbase数据库的集群来对数据操作请求进行响应,从而不会出现单个hbase集群负载过大被卡住进而不能快速响应用户操作的现象,有效提升了多hbase集群整个系统的鲁棒性。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本说明书实施例提供的一种对多hbase集群的数据操作方法的流程示意图;
39.图2为本说明书实施例提供的对应于图1的一种对多hbase集群的数据操作装置的结构示意图;
40.图3是本说明书实施例提供的对应于图1的一种对多hbase集群的数据操作设备的结构示意图。
具体实施方式
41.为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
42.应当理解,尽管在本技术文件中可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。
43.如前文背景技术部分陈述,随着企业数字化转型,企业内部一般会建立自己的数据仓库系统,对于数据量庞大,实时性要求比较高的业务,一般会采用搭建hbase集群的方式来支持业务处理。其中,hbase即hadoopdatabase,本身单个hbase集群是高可靠、高性能、易伸缩的分布式存储系统,但随着企业要处理的业务越来越多,要处理的数据量也越来越大,对数据的可用性要求也越来越高,此时企业一般会搭建多个hbase集群,然后对多个hbase集群进行管理以实现集群的高可用性。目前现有技术中,一般是基于zk(全称为zookeeper,是一个分布式的,开放源码的分布式应用程序协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件)集群来管理多个hbase集群,从而多个hbase集群的高可用性与zk集群强相关。但是在使用zk集群管理多个hbase集群的方式中,当对多hbase集群的访问量比较大时,流量会首先打到zk集群上,此时zk集群压力过大,可能会会出现zk集群长时间锁住的现象,甚至出现zk集群不能提供服务等问题,从而给hbase集群提供的包括读和写数据在内的服务造成很大的负面影响。同时,由于用户通过zk集群来实现对hbase集群的读写等操作时,是首先通过zk集群寻址到相关数据表,然后访问hbase集群以进行相关数据的具体读写等操作,但zk集群对负载均衡或流量切分的处理比较随机,有可能出现单个hbase集群负载过大以至于不能快速响应用户操作,影响用户体验。
44.申请人经过对现有技术的检索分析,由于zookeeper本身是hbase的重要组件,从而现有技术中绝大多数是通过zk集群来管理多hbase集群,当出现前文阐述的由于zk集群对负载均衡或流量切分的处理比较随机,单个hbase集群负载过大以至于不能快速响应用户操作等现象时,大多是通过增加hbase服务器的方式来解决,但由于存在固有的zk集群对负载均衡或流量切分的处理比较随机的问题,单纯通过增加hbase服务器的方式仍然可能会出现单个hbase集群负载过大,不能快速响应用户操作的现象。因此,有必要提供一种可靠的管理多hbase集群的方法,以有效地对多hbase集群进行管理。
45.在本说明书实施例中,提供了一种有效管理多hbase集群的方式,用户可以个性化地对其欲访问的数据表所对应的hbase集群进行预先配置,即对其通过用户终端发出的数据操作请求进行了路由操作,从而有效地大幅度降低了在一段时间内单个hbase负载过大现象的发生,从而实现了对多hbase集群的有效管理。
46.为了解决现有技术中的缺陷,本方案给出了以下实施例:
47.图1为本说明书实施例提供的应用于服务平台的一种对多hbase集群的数据操作方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于服务平台的服务器的程序。
48.如图1所示,该流程可以包括以下步骤。
49.步骤102:接收客户端发送的对多hbase集群进行数据操作的数据操作请求;所述数据操作请求中携带有所述数据操作请求对应的目标hbase集群标识信息;所述目标hbase集群标识信息所标识的hbase集群属于所述多hbase集群的子集群。
50.在本说明书实施例中,当用户需要对多hbase集群进行数据操作时,可以通过用户终端向服务平台发送数据操作请求。其中,本实施例中并不限制用户的种类,如其可以指租用多hbase集群提供的数据服务的租户。
51.所述客户端可以指在用户终端,例如智能手机或个人计算机,上安装的主应用程序,用户可以通过安装于所述用户终端上的相关主应用程序,来生成所述数据操作请求,或者,用户也可以通过寄生于宿主应用程序(即,主应用程序)的小应用程序,来生成所述数据操作请求。
52.所述数据操作可以指一组定义在数据上的操作,如可以指读取、修改存储在所述多hbase集群中的数据,或者向所述在所述多hbase集群内写入新的数据,或者删除原本存储在所述多hbase集群内的数据。目标hbase集群标识信息用来标识一组hbase集群,这一组hbase集群可以处于不同的地域,但都属于同一个可用区,处于同一个分组里,从其表现形式来说,这一组hbase集群中包括的hbase集群属于多hbase集群中的集群,是多hbase集群的子集群。举例说明,多hbase集群包括hbase集群a(具体包括hbase1、hbase2、hbase3)、hbase集群b(具体包括hbase4、hbase5、hbase6)、hbase集群c(具体包括hbase7、hbase8、hbase9)、hbase集群d(具体包括hbase10、hbase11、hbase12),在示意性的例子中,目标hbase集群标识信息所标识的hbase集群可以包括hbase集群a、hbase集群b和hbase集群d。
53.步骤104:判断所述数据操作请求是否用于请求从所述多hbase集群中读取数据,得到判断结果。
54.前文阐述了数据操作可以指一组定义在数据上的操作,如读取、修改、写、删除等操作,为了根据不同的数据操作请求的种类进行针对性的操作,本步骤需判断数据操作请求的种类,由于当对数据进行不同种类的操作时需编写不同类型的数据操作语句,从而具体的判断方法可以是对数据操作请求对应的数据操作语句进行分析。本步骤的后续步骤针对的是从所述hbase集群中读取数据的情况,从而本步骤需判断数据操作请求是否是请求从所述多hbase集群中读取数据,得到判断结果。
55.步骤106:若所述判断结果表明所述数据操作请求用于请求从所述多hbase集群中读取数据,则确定所述数据操作请求对应的目标数据表后,基于用户预先配置的集群路由表确定所述目标数据表对应的所述子集群中的目标hbase集群;所述集群路由表包括多个目标数据表中任意一个目标数据表与所述任意一个目标数据表对应的所述子集群中目标hbase集群的关联信息;所述目标hbase集群包括至少两个hbase集群。
56.在本说明书实施例中,目标数据表可以指用户通过用户终端所发出的读取数据的数据操作请求所对应的数据表,此数据表存储在多hbase集群中。在实际场景中,多hbase集群可以存储不同形式的多种数据表,为了实现分布式存储从而通过数据冗余的方式来实现系统的可靠性,某个数据表可能通过不同的hbase服务器都能访问到。同时,在实际场景中,由于不同的用户对存储在多hbase集群中的数据表存在不同的访问权限,且多hbase集群中的数据表只有一部分对用户开放了访问权限,因此,就具体某个用户而言,其可以访问的数据表的数量是有限的,因此用户可以个性化地预先配置具体由哪个目标hbase集群来对其
访问权限内的每个数据表进行响应,这些配置信息可以存储在集群路由表中,集群路由表可以存储在用户终端中,也可以存储在服务平台中。其中,本实施例中所述目标hbase集群包括至少两个hbase集群,属于前文阐述的具体某个子集群的子集。为方便对方案的理解,下面在步骤102中例子的基础上进行示意性地解释说明,前文阐述了,在示意性的例子中,目标hbase集群标识信息所标识的hbase集群可以包括hbase集群a、hbase集群b和hbase集群d,从而目标hbase集群可以是(hbase集群a、hbase集群b)或(hbase集群b、hbase集群d)或(hbase集群a、hbase集群d)。从而本实施例方案中,对于用户基于用户终端发出的数据操作请求最终是由目标集群中的某个安装了若干hbase数据库的集群来响应的。而且,对于具体的某个数据表,用户可以个性化地对一段时间内此数据表对应的目标集群中的不同的集群的响应比例进行配置,从而大幅度地降低了某个时间节点单个集群负载过大,导致对用户数据操作请求响应慢,用户使用体验不佳现象的发生。
57.步骤108:基于所述目标hbase集群对所述数据操作请求进行响应,并将响应结果反馈到所述客户端。
58.在本说明书实施例中,在确定了目标集群后就可以由目标hbase集群对数据操作进行响应,由于步骤106针对的是数据操作请求是用于从多hbase集群中读取数据的请求,从而本步骤中对数据操作请求进行响应可以是指将数据操作请求所对应的数据发送到用户终端。
59.图1中的方法,服务平台接收到客户端发送的对多hbase集群进行数据操作的数据操作请求后,可以根据该数据操作请求中携带的该数据操作请求对应的目标hbase集群标识信息确定处理该数据操作请求的目标hbase集群,该目标hbase集群是多hbase集群的子集群,再由该目标hbase集群中的具体某个hbase集群对数据操作请求进行响应。即首先根据数据操作请求先确定对应的目标数据表,再基于用户预先配置的集群路由表确定目标数据表对应的子集群中的目标hbase集群,最后由目标hbase集群中的某个安装了若干hbase数据库的集群来对数据操作请求进行响应,从而不会出现单个hbase集群负载过大被卡住进而不能快速响应用户操作的现象,有效提升了多hbase集群整个系统的鲁棒性。
60.基于图1的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
61.图1中的方法,数据操作请求中携带有该数据操作请求对应的目标hbase集群标识信息,其中,目标hbase集群标识信息所标识的hbase集群属于所述多hbase集群的子集群,由于该hbase集群包括多个子集群,对于某个确定的用户,可以预先确定具体是由哪个hbase集群对该用户的数据操作请求进行响应,从而在可选的实施例中,所述接收客户端发送的对多hbase集群进行数据操作的数据操作请求之前,可以包括:接收用户基于客户端发送的对所述对多hbase集群的访问配置信息,所述访问配置信息用于基于所述用户的归属地确定所述多hbase集群中的子集群。
62.在可选的实施例中,所述接收客户端发送的对多hbase集群进行数据操作的数据操作请求之前,包括:预先为所述多hbase集群的每个用户分配用户标识信息,所述数据操作请求还携带有对应的用户标识信息。
63.所述目标hbase集群包括所述目标hbase集群所归属的子集群中的两个集群,所述两个集群包括第一hbase集群和第二hbase集群;基于预定的规则,对所述第一hbase集群和
所述第二hbase集群在预定的时间段内响应携带有同一用户标识信息的数据操作请求的网络流量进行分配。
64.在本实施例中,用户标识信息用于标记用户,即一个用户标识信息对应唯一的一个用户,其具体表现形式可以为一串数字,一串字符或数字和字符的组合串,该用户标识信息可以由用户自定义,也可以由服务平台进行指定。这样,数据操作请求中携带对应的用户标识信息后,服务平台可以基于用户标识信息确定发起数据操作请求的用户。前文阐述了目标hbase集群可以至少包括两个hbase集群,在本实施例中目标hbase集群包括第一hbase集群和第二hbase集群这两个集群,而且,第一hbase集群和第二hbase集群为目标hbase集群所归属的子集群的子集群,在实际应用场景中,对于用户通过用户终端发出的具体某次数据操作请求是由第一hbase集群或第二hbase集群中的具体某个集群来响应的,用户可以个性化地配置这两个集群响应其在预定的时间段内响应其发出的所有数据操作请求时的网络流量比例,由于一般而言,在地理上距离用户所在地越近的集群对用户的数据操作请求的响应速度更快,从而配置规则可以是离用户近的hbase集群所切分的网络流量比例更大。需要说明的是,本实施例中的网络流量比例是大致而言的,允许其在一定范围内波动。
65.在可选的方案中,所述接收客户端发送的对多hbase集群进行数据操作的数据操作请求之前,包括:预先为所述多hbase集群的每个用户分配用户标识信息,所述数据操作请求还携带有对应的用户标识信息;所述目标hbase集群包括所述目标hbase集群所归属的子集群中的至少三个hbase集群,所述至少三个hbase集群包括第一hbase集群、第二hbase集群和第三hbase集群;
66.基于预定的规则,对所述第一hbase集群和所述第二hbase集群在预定的时间段内响应携带有同一用户标识信息的数据操作请求的网络流量进行分配;所述第三hbase集群用于所述第一hbase集群和所述第二hbase集群都不可用时对所述数据操作请求进行响应。
67.在本实施例中,用户标识信息的内涵及其外延可参见前一实施例,在此不再赘述。与前一实施例不同的是,在集群资源比较丰富时,本实施例中目标hbase集群可以包括至少三个hbase集群,即至少包括第一hbase集群,第二hbase集群和第三hbase集群,这三个集群属于目标hbase集群所归属的子集群的子集群,在将响应携带有同一用户标识信息的数据操作请求的网络流量在第一hbase集群和第二hbase集群之间进行分配的方法可参见前一实施例,在此不再赘述。由于第一hbase集群和第二hbase集群可能会处于后文要介绍的不可用状态,从而在本实施例中,在此时可以由默认的第三hbase集群来对数据操作请求进行响应,以增强系统的鲁棒性。
68.在可选的实施例中,所述按预定的规则,对所述第一hbase集群和所述第二hbase集群在预定的时间段内响应携带有同一用户标识信息的数据操作请求的网络流量进行分配,具体包括:
69.将所述第一hbase集群的物理访问地址虚拟为第一数量的逻辑访问地址,将所述第二hbase集群的物理访问地址虚拟为第二数量的逻辑访问地址,所述第一数量和所述第二数量的比值符合所述网络流量进行分配时的比例;
70.以所述客户端的ip地址和访问时间为参数进行哈希运算,得到哈希运算的结果;按预定规则将所述哈希运算的结果映射到逻辑访问地址,将所述逻辑访问地址所属的集群确定为对所述数据操作请求进行响应的集群。
71.在本实施例中,为了将网络流量在第一hbase集群和第二hbase集群之间按照预定比例进行切分,将第一hbase集群的物理访问地址虚拟为第一数量的逻辑访问地址,同时将第二hbase集群的物理访问地址虚拟为第二数量的逻辑访问地址,这样当用户基于客户端对多hbase集群发送数据操作请求后,可以基于客户端的ip地址和发送所述数据操作请求时的时间为参数进行哈希运算,将得到的哈希运算的结果匹配逻辑访问地址后,最终映射到访问真实地址。
72.在可选的实施例中,所述基于所述目标hbase集群对所述数据操作请求进行响应之前,包括:确定对所述数据操作请求进行响应的响应集群;对所述响应集群响应所述数据操作请求的响应状态进行评估,若所述响应状态低于预定能力,则在所述响应集群响应所述数据操作请求的上一次数据操作请求所得的评分的基础上进行降分处理,得到所述降分处理后的评分。
73.在前文介绍的实施例方案的基础上,若所述降分处理后的评分小于所述响应能力阈分值,则将所述响应集群标识为不可用状态,并将所述响应集群的标识信息添加到待探测恢复队列列表;所述待探测恢复队列列表中包括若干标记为不可用状态的hbase集群的标识信息。在此实施例中,当对响应集群进行降分处理后得到的评分小于所述响应能力阈分值时,可以认为该响应集群的工作负载较大,若后续阶段继续由该响应集群响应后续阶段的数据操作请求,可能会出现如响应速度慢,响应超时,响应失败等现象,造成用户体验不佳。此时,可暂时性地将该响应集群标记为不可用状态,即后续阶段不再由该响应集群对数据操作请求进行响应,可选的,可以建立一个待探测恢复队列列表,该待探测恢复队列列表包括所有的标记为不可用状态的hbase集群,在具体实现时,该待探测恢复队列列表可以用于存储所有标记为不可用状态的hbase集群的标识信息,在此实施例中,即是将该响应集群的标识信息添加到该待探测恢复队列列表中。
74.由于标记为不可用状态的hbase集群在处理完相应事务后,其工作负载会相应降低,从而其对数据操作请求的响应会变快,此时为了加快多hbase集群对外部数据操作请求的响应速度,提升多hbase集群内hbase集群的协同效率,可以监测探测恢复队列列表中hbase的状态,一旦发现有hbase集群恢复为可用状态,即将其从监测探测恢复队列列表中摘除。从而,相应的,所述将所述响应集群标识为不可用状态之后,包括:对所述响应集群的健康性进行探测,当监测到所述响应集群的健康指数超过预定阈值后,将所述响应集群标记为可用状态;将所述响应集群的标识信息从所述待探测恢复队列列表中移除。在具体实现时,可以建立一个线程,用来不间断地监测待探测恢复队列列表中标记为不可用状态的hbase集群的健康状态,其健康指数超过预定阈值后,将所述响应集群标记为可用状态,并将该响应集群的标识信息从该待探测恢复队列列表中移除。
75.前文阐述了数据操作请求用于请求从所述多hbase集群中读取数据的情况,而用户基于用户终端发出的数据操作请求也可能是请求向所述hbase中写入数据,从而在可选的方案中,若所述判断结果表明所述数据操作请求用于请求从所述多hbase集群中写入数据,则确定所述数据操作请求对应的目标数据表后,基于用户预先配置的集群路由表确定所述目标数据表对应的所述子集群中的目标hbase集群;将所述数据操作请求对应的数据写入所述目标hbase集群中的所有hbase集群。
76.在可选的方案中,还可以将hbase集群原生的zkmeta与metaregion数据抽象为
meta service微服务,为客户端提供restapi请求,采用短连接的方式实现数据定位,从而解决了无法短时间内处理大量连接与meta数据读取的问题。其中,metaservice即元数据服务,融合了hbase集群的zk,metaregion等相关元数据,并进行实时缓存,当用户进行访问数据表等操作时,访问元数据有权直接访问metaservice缓存服务,从而降低了对hbasezk本身的访问,使hbase集群的zk服务压力更小,且每个物理集群都会有metaservice服务,提供了对外元数据的管理。
77.基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图2为本说明书实施例提供的对应于图1的一种对多hbase集群的数据操作装置的结构示意图。如图2所示,该装置可以包括:
78.数据操作请求接收模块202,用于接收客户端发送的对多hbase集群进行数据操作的数据操作请求;所述数据操作请求中携带有所述数据操作请求对应的目标hbase集群标识信息;所述目标hbase集群标识信息所标识的hbase集群属于所述多hbase集群的子集群。
79.操作类型判断模块204,用于判断所述数据操作请求是否用于请求从所述多hbase集群中读取数据,得到判断结果。
80.目标集群确定模块206,用于若所述判断结果表明所述数据操作请求用于请求从所述多hbase集群中读取数据,则确定所述数据操作请求对应的目标数据表后,基于用户预先配置的集群路由表确定所述目标数据表对应的所述子集群中的目标hbase集群;所述集群路由表包括多个目标数据表中任意一个目标数据表与所述任意一个目标数据表对应的所述子集群中目标hbase集群的关联信息;所述目标hbase集群包括至少两个hbase集群。
81.请求响应模块208,用于基于所述目标hbase集群对所述数据操作请求进行响应,并将响应结果反馈到所述客户端。
82.可选的,所述装置还可以包括访问配置信息接收模块,用于接收用户基于客户端发送的对所述对多hbase集群的访问配置信息,所述访问配置信息用于基于所述用户的归属地确定所述多hbase集群中的子集群。
83.可以理解,上述的各模块是指计算机程序或者程序段,用于执行某一项或多项特定的功能。此外,上述各模块的区分并不代表实际的程序代码也必须是分开的。
84.基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
85.图3是本说明书实施例提供的一种对多hbase集群的数据操作设备的结构示意图。如图3所示,此硬件设备可以包括:
86.至少一个处理器310;以及,
87.与所述至少一个处理器通信连接的存储器330;其中,
88.所述存储器330存储有可被所述至少一个处理器310执行的指令320,所述指令被所述至少一个处理器310执行,以使所述硬件设备能够:
89.接收客户端发送的对多hbase集群进行数据操作的数据操作请求;所述数据操作请求中携带有所述数据操作请求对应的目标hbase集群标识信息;所述目标hbase集群标识信息所标识的hbase集群属于所述多hbase集群的子集群;
90.判断所述数据操作请求是否用于请求从所述多hbase集群中读取数据,得到判断结果;
91.若所述判断结果表明所述数据操作请求用于请求从所述多hbase集群中读取数
据,则确定所述数据操作请求对应的目标数据表后,基于用户预先配置的集群路由表确定所述目标数据表对应的所述子集群中的目标hbase集群;所述集群路由表包括多个目标数据表中任意一个目标数据表与所述任意一个目标数据表对应的所述子集群中目标hbase集群的关联信息;所述目标hbase集群包括至少两个hbase集群;
92.基于所述目标hbase集群对所述数据操作请求进行响应,并将响应结果反馈到所述客户端。
93.本发明实施例还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现一种对多hbase集群的数据操作方法。
94.本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
95.本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
96.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1