一种负载均衡的方法和单元、分布式NewSQL数据库系统与流程

文档序号:12887040阅读:241来源:国知局
本发明涉及大数据
技术领域
:,尤其涉及一种负载均衡的方法和单元、分布式newsql数据库系统。
背景技术
::目前hbase是hadoop生态体系中最著名的分布式nosql数据库之一。其设计理念来源于google的bigtable。hbase主要组件包括hmaster和hregionsever,为用户提供表格类型的数据模型,表按主键范围划分为多个region,hmaster负责管理和分配region,hregionserver负责region数据的读写。hmaster会将表按主键范围划分为多个region,分配到hregionserver。运行过程中,随着数据量的不断增加,热点数据会出现分配不均的情况,即只有一小部分hregionserver在承担绝大所的访问,这样照成集群的处理能力下降及服务器资源的浪费。技术实现要素:本发明实施例的目的是提供一种负载均衡的方法和单元、分布式newsql数据库系统,动态平衡负载、动态调整数据及索引分布,提高运行效率,充分利用服务器资源。为实现上述目的,本发明实施例提供了一种均衡负载的方法,基于分布式newsql数据库系统,所述分布式newsql数据库系统包括master单元、worker单元和hbase单元,所述均衡负载的方法包括:接收所述hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息,其中,所述负载信息包括所述worker单元的负载偏差值;将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;获取每一region的数据量,将每一所述region的数据量与预设数据量阈值进行判断,若判定所述region的数据量超过阀值,触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。进一步的,所述分布式newsql数据库还包括sqlplaner单元,其中,所述master单元用于所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给sqlplaner单元;所述sqlplaner单元用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;所述worker单元,用于并行地执行所述计划,以获得数据进行归并汇总以返回给master单元。进一步的,所述hbase单元还包括coprocessor模块,其中,所述coprocessor模块用于将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;所述coprocessor模块还用于将超过预设数据量阀值的所述region切分成两个。相应,本发明实施例还公开一种均衡负载的单元,适用于分布式newsql数据库系统,所述分布式newsql数据库包括master单元、worker单元和hbase单元,所述均衡负载的单元包括:信息收集模块,用于接收所述hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息,其中,所述负载信息包括所述worker单元的负载偏差值;region分配模块,用于将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;region切分模块,用于获取每一region的数据量,将每一所述region的数据量与预设数据量阈值进行判断,若判定所述region的数据量超过阀值,触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。进一步的,所述分布式newsql数据库还包括sqlplaner单元,其中,所述master单元用于所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给sqlplaner单元;所述sqlplaner单元用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;所述worker单元,用于并行地执行所述计划,以获得数据进行归并汇总以返回给master单元。进一步的,所述hbase单元还包括coprocessor模块,其中,所述coprocessor模块用于将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;所述coprocessor模块还用于将超过预设数据量阀值的所述region切分成两个。进一步的,所述region分配模块判定所述负载偏差值超过阀值时,通过触发所述master单元启动数据分布调整,进而由所述master单元触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配。进一步的,所述region切分模块判定所述region的数据量超过阀值,通过触发所述master单元启动数据分布调整,进而由所述master单元触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。相应,本发明实施例还提供一种分布式newsql数据库系统,包括上述本发明提供的一种均衡负载的单元,还包括master单元、worker单元和hbase单元。进一步的,所述分布式newsql数据库还包括sqlplaner单元,其中,所述master单元用于所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给sqlplaner单元;所述sqlplaner单元用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;所述worker单元,用于并行地执行所述计划,以获得数据进行归并汇总以返回给master单元。与现有技术相比,本发明公开的一种负载均衡的方法和单元、分布式newsql数据库系统,通过接收所述hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息;将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;获取每一region的数据量,将每一所述region的数据量与预设数据量阈值进行判断,若判定所述region的数据量超过阀值,触发所述hbase单元将超过预设数据量阈值的所述region切分成两个的技术方案,解决了现有技术**问题,获得了动态平衡负载、动态调整数据及索引分布,提高运行效率,充分利用服务器资源的有益效果。附图说明图1是本发明实施例1中一种均衡负载的方法的流程示意图;图2是本发明实施例2中一种均衡负载的单元的结构示意图;图3是本发明实施例3中一种分布式newsql数据库系统的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例1提供了一种均衡负载的方法,适用于基于分布式newsql数据库系统,参见图1,图1是本发明实施例1的结构示意图,所述分布式newsql数据库系统包括master单元、worker单元和hbase单元,所述均衡负载的方法包括:s1、接收所述hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息,其中,所述负载信息包括所述worker单元的负载偏差值;s2、将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;s3、获取每一region的数据量,将每一所述region的数据量与预设数据量阈值进行判断,若判定所述region的数据量超过阀值,触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。现有技术中,hmaster会将表按主键范围划分为多个region,分配到hregionserver。运行过程中,随着数据量的不断增加,热点数据会出现分配不均的情况,即只有一小部分hregionserver在承担绝大所的访问,这样照成集群的处理能力下降及服务器资源的浪费。本实施例针对运行过程中的负载均衡及高可用,监控hbase单元各个hregionsever的负载及数据分布,动态平衡hregionsever负载及动态调整数据及索引分布,在使用过程中保持最优状态,始终处在一个较高的运行效率,充分利用服务器资源。进一步的,所述分布式newsql数据库还包括sqlplaner单元,其中,所述master单元用于所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给sqlplaner单元;所述sqlplaner单元用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;所述worker单元,用于并行地执行所述计划,以获得数据进行归并汇总以返回给master单元。进一步的,所述hbase单元还包括coprocessor模块,其中,所述coprocessor模块用于将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;所述coprocessor模块还用于将超过预设数据量阀值的所述region切分成两个。具体实施时,首先,接收所述hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息;然后,将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;接着,获取每一region的数据量,将每一所述region的数据量与预设数据量阈值进行判断,若判定所述region的数据量超过阀值,触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。本实施例解决hbase在运行中出现的数据分布不均及由此引发的负载不均衡问题,动态平衡负载、动态调整数据及索引分布,提高运行效率,充分利用服务器资源。参见图2,图2是本发明实施例公开的一种均衡负载的单元的结构示意图。本实施例适用于分布式newsql数据库系统,所述分布式newsql数据库包括master单元、worker单元和hbase单元,所述均衡负载的单元包括:信息收集模块11,用于接收所述hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息,其中,所述负载信息包括所述worker单元的负载偏差值;region分配模块12,用于将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;region切分模块13,用于获取每一region的数据量,将每一所述region的数据量与预设数据量阈值进行判断,若判定所述region的数据量超过阀值,触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。进一步的,所述分布式newsql数据库还包括sqlplaner单元,其中,所述master单元用于所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给sqlplaner单元;所述sqlplaner单元用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;所述worker单元,用于并行地执行所述计划,以获得数据进行归并汇总以返回给master单元。进一步的,所述hbase单元还包括coprocessor模块,其中,所述coprocessor模块用于将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;所述coprocessor模块还用于将超过预设数据量阀值的所述region切分成两个。进一步的,所述region分配模块判定所述负载偏差值超过阀值时,通过触发所述master单元启动数据分布调整,进而由所述master单元触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配。进一步的,所述region切分模块判定所述region的数据量超过阀值,通过触发所述master单元启动数据分布调整,进而由所述master单元触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。具体实施时,首先,通过信息收集模块11接收所述hbase单元的数据分布信息,接收所述master单元中的所述worker单元的负载信息;然后,通过region分配模块12将所述worker单元的负载偏差值与预设负载偏差阈值进行比较,若判定所述负载偏差值超过阀值,触发所述hbase单元将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;最后,通过region切分模块13,用于获取每一region的数据量,将每一所述region的数据量与预设数据量阈值进行判断,若判定所述region的数据量超过阀值,触发所述hbase单元将超过预设数据量阈值的所述region切分成两个。本实施例解决hbase在运行中出现的数据分布不均及由此引发的负载不均衡问题,动态平衡负载、动态调整数据及索引分布,提高运行效率,充分利用服务器资源。参见图3,图3是本发明实施例的提供一种分布式newsql数据库系统的结构示意图,包括上述本发明提供的一种均衡负载的单元8,参考上述实施例的说明,此处不赘述。本实施例还包括master单元2、worker单元4和hbase单元6。通常,均衡负载的单元8与master单元2连接。进一步的,所述分布式newsql数据库还包括sqlplaner单元,其中,所述master单元2用于所接入的用户请求,并协调多个处理器之间的数据通讯以及管理整体流程,并将所述用户请求优先发送给sqlplaner单元;所述sqlplaner单元3用于解析所述用户请求,根据所述用户请求编译以及定制执行计划;所述worker单元4,用于并行地执行所述计划,以获得数据进行归并汇总以返回给master单元。进一步的,所述hbase单元6还包括coprocessor模块61,其中,所述coprocessor模块61用于将命中率较高服务器上的region和命中率较低服务器上的region进行从新分配;所述coprocessor模块61还用于将超过预设数据量阀值的所述region切分成两个。进一步的,还包括数据库接口单元1,用于与用户进行交互操作,包括接入用户请求,以将用户请求发送至master单元2;以及当master单元2接收到根据用户请求所获得的结果时,接收master单元2发送的结果以发送给用户。进一步的,还包括:分布式事务管理器5,用于当执行计划中涉及分布式事务时,协调执行计划中的多方完成分布式事务管理。进一步的,还包括:hbase单元6和搜索引擎服务器7,均用于储存数据;worker单元4进一步用于通过hbase单元6和搜索引擎服务器7获取数据。进一步的,hbase单元6包括coprocessor模块61和filter模块,coprocessor模块61和filter模块均用于针对数据生成索引表;coprocessor模块61还用于根据索引定义以倒排索引的方式将索引数据并行写入索引表,从而建立多个二级索引;master单元2还用于根据查询条件动态计算使用索引的代价;coprocessor模块61还用于根据索引定义以及查询条件优先查询索引表,并行地通过索引表查询结果再次查询数据表。本实施例提供的分布式newsql数据库系统,包括了本实施例所提供的均衡负载的单元,能够针对运行过程中的负载均衡及高可用,实时监控hbase各个hregionsever的负载及数据分布,动态平衡hregionsever负载及动态调整数据及索引分布,使得整个系统在使用过程中始终保持最优状态。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1