基于HBase表实现聚合计算的方法和装置制造方法

文档序号:6629626阅读:332来源:国知局
基于HBase表实现聚合计算的方法和装置制造方法
【专利摘要】本发明提供了一种基于HBase表实现聚合计算的方法和装置,包括:使用HBase协处理器的终端编写聚合计算;对HBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置;HBase协处理器加载客户端实现聚合计算。本发明通过HBase中协处理器的终端类型接口来实现聚合计算,通过简单的聚合计算得出最终的计算结果,从而减少了网络开销,提高了性能。
【专利说明】基于HBase表实现聚合计算的方法和装置

【技术领域】
[0001]本发明涉及数据处理【技术领域】,尤其涉及一种基于HBase表实现聚合计算的方法和装置。

【背景技术】
[0002]数据时代已经来临,分布式集群、分布式数据库、分布式文件系统等技术都是人们关注的焦点。分布式集群Hadoop是大数据时代的产品,能够解决大数据时代的海量数据的处理问题。HBase是在Hadoop之上的一个面向列的分布式数据库,它很受到人们的关注。
[0003]HBase提供了很好的易用性及键值对的灵活处理,同时能够快速读取表中数据等优势,但HBase中不能很好的处理聚合计算如求和、计数、排序等操作,它只会利用编写MapReduce程序进行执行,例如执行一次表的总行数的计数,是需要执行一次MapReducce程序才可以实现,这需要花费很长时间。现有的HBase不能提供简单的聚合计算,这将导致了网络开销增加、性能差。


【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种基于HBase表实现聚合计算的方法和装置,能够提供方便的聚合计算。
[0005]为了达到本发明目的,本发明提供了一种基于HBase表实现聚合计算的方法,包括:使用HBase协处理器的终端编写聚合计算JfHBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置;HBase协处理器加载客户端实现聚合计算。
[0006]进一步地,使用HBase协处理器的终端编写聚合计算,包括:定义一个协议protocol接口,所述协议接口继承协处理器协议CoprocessorProtocol ;实现终端接口,所述实现继承基础终端协处理器BaseEndpointCoprocessor ;客户端使用应用程序编程接口API调用终端。
[0007]进一步地,聚合计算包括求和、平均、最大计算、最小计算、计数和排序。
[0008]进一步地,对HBase中的配置文件进行协处理器的聚合类配置,包括:将hbase-site.xml 中的 hbase.coprocessor, reg1n, classes 设置成协处理器的聚合类;对HBase特定表中进行协处理器的聚合类配置,包括:在hbase shell中对HBase中特定表的参数进行协处理器的聚合类配置。
[0009]进一步地,协处理器加载客户端实现聚合计算,包括:在客户端实现终端,协处理器加载客户端,通过HBase RPC调用,客户端提供聚合计算。
[0010]一种基于HBase表实现聚合计算的装置,包括:编写模块,用于使用HBase协处理器的终端编写聚合计算;配置模块,用于对HBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置;实现模块,用于协处理器加载客户端实现的聚合计算。
[0011]进一步地,编写模块,具体用于定义一个协议protocol接口,所述协议接口继承协处理器协议CoprocessorP1tocol ;实现终端接口,所述实现继承基础终端协处理器BaseEndpointCoprocessor ;客户端使用应用程序编程接口 API调用终端。
[0012]进一步地,配置模块,具体用于将hbase-site.xml中的hbase.coprocessor,reg1n, classes设置成协处理器的聚合类,或者,在hbase shell中对HBase中特定表的参数进行协处理器的聚合类配置。
[0013]进一步地,实现模块,具体用于在客户端实现终端,协处理器加载客户端,通过HBase RPC调用,客户端提供聚合计算。
[0014]与现有技术相比,本发明包括:使用HBase协处理器的终端编写聚合计算;对HBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置;HBase协处理器加载客户端实现聚合计算。本发明通过HBase中协处理器的终端类型接口来实现聚合计算,通过简单的聚合计算得出最终的计算结果,从而减少了网络开销,提高了性能。

【专利附图】

【附图说明】
[0015]图1是本发明基于HBase表实现聚合计算的方法的流程示意图。
[0016]图2是本发明使用HBase协处理器的终端编写聚合计算的方法的流程示意图。
[0017]图3是本发明基于HBase表实现聚合计算的装置的结构示意图。

【具体实施方式】
[0018]下面结合附图对本发明进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。
[0019]在本发明中,需要部署分布式集群环境,例如,在centos6.3操作系统上安装好jdkl.6,并部署分布式集群环境,该集群中包含HDFS、MapReduce> HBase> Zookeeper组件,该分布式集群环境可以是有5个节点,每个节点的配置是96G内存,12个core,硬盘是12*1T。
[0020]HBase协处理器(Coprocessor)是HBase中的一个框架,提供了一个灵活的、可用于建立分布式服务的数据模型,能够自动化扩展、负载均衡,每个表的服务器可以运行代码,客户端可以调用接口等优点。它为用户提供类库和运行时环境,使得他们的代码能够在HBase Reg1nserver 和 Master 上处理。
[0021]协处理器分为两种类型,提供了两个不同方向的插件,一个是观察者(observer),该类型类似于关系数据库的触发器,另一个是终端(endpoint),动态的终端像个存储过程。在hbase表的聚合工具中使用的是终端类型的插件方式,终端是动态远程过程调用协议(RPC, Remote Procedure Call Protocol)插件的接口,它的实现代码被安装在服务器端,从而能够通过HBase RPC唤醒。客户端类库提供了非常方便的方法来调用这些动态接口,可以在任意时候调用一个终端,实现代码会被目标reg1n远程执行,最终返回结果到终端。用户可以结合使用的插件接口,为HBase添加全新的特性。
[0022]图1是本发明基于HBase表实现聚合计算的方法的流程示意图。如图1所示,具体可以包括:
[0023]步骤11,使用HBase协处理器(Coprocessor)的终端(endpoint)编写聚合计算。
[0024]在本发明中,使用的是Coprocessor中的终端类型来进行实现聚合计算。终端是可以在任何时候被客户端触发,终端类型的实现是在远程的reg1n上执行的,然后将结果返回给客户端。因此,实现聚合计算需要对终端接口进行编程操作。由于终端是动态的远程过程调用协议(RPC,Remote Procedure Call Protocol)的一个扩展,终端的实现被安装在客户端,通过HBase RPC调用,客户端提供聚合计算。
[0025]在本步骤中,聚合计算可以包括求和、平均、最大计算、最小计算、计数、排序等。
[0026]在本步骤中,使用HBase协处理器的终端编写聚合计算,具体可以参考图2所示,包括:
[0027]步骤111,定义一个协议(protocol)接口,该协议接口继承协处理器协议(CoprocessorProtocol);
[0028]步骤112,实现终端接口,该实现继承基础终端协处理器(BaseEndpointCoprocessor);
[0029]步骤113,客户端使用应用程序编程接口(API, Applicat1n ProgrammingInterface)调用终端。
[0030]步骤12,对HBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置。
[0031]在本步骤中,对HBase中的配置文件进行协处理器的聚合类配置,具体为将hbase-site.xml 中的 hbase.coprocessor, reg1n, classes 设置成协处理器的聚合类。
[0032]对HBase特定表中进行协处理器的聚合类配置,具体为在hbase shell中对HBase中特定表的参数进行协处理器的聚合类配置。
[0033]步骤13,协处理器加载客户端实现聚合计算。
[0034]在本步骤中,在客户端实现终端,协处理器加载客户端,通过HBase RPC调用,客户端提供聚合计算。
[0035]本发明通过HBase中协处理器的终端类型接口来实现聚合计算,它可以通过简单的聚合计算得出最终的计算结果,不需要MapReduce程序执行计算得出,从而减少了网络开销,提高了性能。
[0036]图3是本发明基于HBase表实现聚合计算的装置,如图3所示,具体可以包括:
[0037]编写模块,用于使用HBase协处理器的终端编写聚合计算;
[0038]具体地,编写模块用于定义一个协议protocol接口,该协议接口继承协处理器协议CoprocessorProtocol ;实现终端接口,该实现继承基础终端协处理器BaseEndpointCoprocessor ;客户端使用应用程序编程接口 API调用终端。
[0039]配置模块,用于对HBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置;
[0040]具体地,配置模块用于将hbase-site.xml 中的 hbase.coprocessor, reg1n,classes设置成协处理器的聚合类,或者,在hbase shell中对HBase中特定表的参数进行协处理器的聚合类配置。
[0041]实现模块,用于协处理器加载客户端实现的聚合计算;
[0042]具体地,实现模块用于在客户端实现终端,协处理器加载客户端,通过HBase RPC调用,客户端提供聚合计算。
[0043]基于HBase表实现聚合计算的装置是和基于HBase表实现聚合计算的方法对应的,因此,基于HBase表实现聚合计算的装置具体的实现细节可参看基于HBase表实现聚合计算的方法,在此不赘述。
[0044]本发明通过HBase中协处理器的终端类型接口来实现聚合计算,它可以通过简单的聚合计算得出最终的计算结果,不需要MapReduce程序执行计算得出,从而减少了网络开销,提闻了性能。
[0045]应当理解,虽然本说明书根据实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式,它们并非用于限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于HBase表实现聚合计算的方法,其特征在于,包括: 使用HBase协处理器的终端编写聚合计算; 对HBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置; HBase协处理器加载客户端实现聚合计算。
2.根据权利要求1所述的基于HBase表实现聚合计算的方法,其特征在于,所述使用HBase协处理器的终端编写聚合计算,包括: 定义一个协议protocol接口,所述协议接口继承协处理器协议CoprocessorProtocol ; 实现终端接口,所述实现继承基础终端协处理器BaseEndpointCoprocessor ; 客户端使用应用程序编程接口 API调用终端。
3.根据权利要求1所述的基于HBase表实现聚合计算的方法,其特征在于,所述聚合计算包括求和、平均、最大计算、最小计算、计数和排序。
4.根据权利要求1所述的基于HBase表实现聚合计算的方法,其特征在于,所述对HBase中的配置文件进行协处理器的聚合类配置,包括:将hbase_site.xml中的hbase.coprocessor, reg1n, classes设置成协处理器的聚合类; 所述对HBase特定表中进行协处理器的聚合类配置,包括:在hbase shell中对HBase中特定表的参数进行协处理器的聚合类配置。
5.根据权利要求1所述的基于HBase表实现聚合计算的方法,其特征在于,所述协处理器加载客户端实现聚合计算,包括:在客户端实现终端,协处理器加载客户端,通过HBaseRPC调用,客户端提供聚合计算。
6.一种基于HBase表实现聚合计算的装置,其特征在于,包括: 编写模块,用于使用HBase协处理器的终端编写聚合计算; 配置模块,用于对HBase中的配置文件进行协处理器的聚合类配置,或者,对HBase中特定表的参数进行协处理器的聚合类配置; 实现模块,用于协处理器加载客户端实现的聚合计算。
7.根据权利要求6所述的基于HBase表实现聚合计算的装置,其特征在于,所述编写模块,具体用于定义一个协议protocol接口,所述协议接口继承协处理器协议CoprocessorProtocol ;实现终端接口,所述实现继承基础终端协处理器BaseEndpointCoprocessor ;客户端使用应用程序编程接口 API调用终端。
8.根据权利要求6所述的基于HBase表实现聚合计算的装置,其特征在于,所述配置模块,具体用于将 hbase-site.xml 中的 hbase.coprocessor, reg1n, classes 设置成协处理器的聚合类,或者,在hbase shell中对HBase中特定表的参数进行协处理器的聚合类配置。
9.根据权利要求8所述的基于HBase表实现聚合计算的装置,其特征在于,所述实现模块,具体用于在客户端实现终端,协处理器加载客户端,通过HBase RPC调用,客户端提供聚合计算。
【文档编号】G06F17/30GK104268257SQ201410527986
【公开日】2015年1月7日 申请日期:2014年10月9日 优先权日:2014年10月9日
【发明者】孙志云, 郭美思, 吴楠 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1