首页 / 专利库 / 专利权 / 申请 / 用于查询过滤HBase服务器数据的方法及装置

用于查询过滤HBase服务器数据的方法及装置

阅读:485发布:2023-02-26

专利汇可以提供用于查询过滤HBase服务器数据的方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 公开一种用于查询过滤HBase 服务器 数据的方法及装置,该方法包括:响应客户端指令,调用HBase 协处理器 ;通过所述HBase协处理器获取查询 请求 ;以及通过预定配置与所述查询请求,生成查询结果。本申请的用于查询过滤HBase服务器数据的方法,能够极大地提高HBase服务器的数据查询效率。,下面是用于查询过滤HBase服务器数据的方法及装置专利的具体信息内容。

1.一种用于查询过滤HBase服务器数据的方法,其特征在于,包括:
响应客户端指令,调用HBase协处理器
通过所述HBase协处理器获取查询请求;以及
通过预定配置与所述查询请求,生成查询结果。
2.如权利要求1所述的方法,其特征在于,还包括:
通过所述HBase协处理器定义第一远程过程调用协议。
3.如权利要求2所述的方法,其特征在于,还包括:
通过所述HBase协处理器定义查询过滤类。
4.如权利要求1所述的方法,其特征在于,所述预定配置包括:
在HBase集群的配置文件中配置查询过滤协处理器类;以及
对HBase的表配置查询过滤的协处理器类。
5.如权利要求1所述的方法,其特征在于,还包括:
对每个RegionServer启动一个线程来处理请求。
6.一种用于查询过滤HBase服务器数据的方法,其特征在于,包括:
构建查询请求;
发送所述查询请求至HBase服务器;以及
通过coprocessorService方法获取返回结果。
7.如权利要求6所述的方法,其特征在于,所述构建查询请求,包括:
通过HBase协处理器的终端构建查询请求。
8.如权利要求7所述的方法,其特征在于,所述通过HBase协处理器的终端构建查询请求,包括:
定义用于进程通信的proto文件。
9.一种用于查询过滤HBase服务器数据的装置,其特征在于,包括:
加载模,用于响应客户端指令,调用HBase协处理器;
接收模块,用于通过所述HBase协处理器获取查询请求;以及
查询模块,用于通过预定配置与所述查询请求,生成查询结果。
10.一种用于查询过滤HBase服务器数据的装置,其特征在于,包括:
构建模块,用于构建查询请求;
发送模块,用于发送所述查询请求至HBase服务器;以及
结果模块,用于通过coprocessorService方法获取返回结果。

说明书全文

用于查询过滤HBase服务器数据的方法及装置

技术领域

[0001] 本发明涉及数据处理和数据查询技术领域,具体而言,涉及一种用于查询过滤HBase服务器数据的方法及装置。

背景技术

[0002] 伴随着互联网技术的快速发展,网络的数据量正以极快的速度增长,分布式集群、分布式数据库、分布式应用等各种技术已经成为人们关注的焦点。分布式集群Hadoop是大数据时代的产品,能够解决大数据时代的海量数据处理问题。HBase是基于Hadoop之上的一个面向列的分布式数据库,为分布式应用提供了一种可扩展的、高性能的存储方案,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,也就是说HBase能够利用HDFS的分布式处理模式,并从Hadoop的MapReduce程序模型中获益。HBase本身就是十分强大的数据库,它能够融合key/value存储模式带来实时查询的能,以及通过MapReduce进行离线处理或者批处理的能力。
[0003] 如上文所述,目前HBase主要应用在结构化和半结构化的大数据存储上,其在存储上和读取上都具有极高的性能表现。但是,HBase不能支持条件、排序查询,只支持按照主键和主键的范围来查询。如果存储的数据量非常大,查询过程中必然造成通信时间延长,出现大量的网络IO,极大地降低了查询性能。
[0004] 因此,需要一种新的用于查询过滤HBase服务器数据的方法及装置。
[0005] 在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0006] 有鉴于此,本发明提供一种用于查询过滤HBase服务器数据的方法及装置,能够极大地提高HBase服务器的数据查询效率。
[0007] 本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
[0008] 根据本发明的一方面,提出一种用于查询过滤HBase服务器数据的方法,该方法包括:响应客户端指令,调用HBase协处理器;通过所述HBase协处理器获取查询请求;以及通过预定配置与查询请求,生成查询结果。
[0009] 在本公开的一种示例性实施例中,还包括:通过HBase协处理器定义第一远程过程调用协议。
[0010] 在本公开的一种示例性实施例中,还包括:通过HBase协处理器定义查询过滤类。
[0011] 在本公开的一种示例性实施例中,通过HBase协处理器定义查询过滤类,包括:HBase协处理器继承第一远程过程调用协议;通过所述HBase协处理器的所述第一远程过程调用协议实现CoprocessorService与Coprocessor接口;以及重写HBase协处理器的第一远程过程调用协议方法。
[0012] 在本公开的一种示例性实施例中,预定配置包括:在HBase集群的配置文件中配置查询过滤协处理器类;以及对HBase的表配置查询过滤的协处理器类。
[0013] 在本公开的一种示例性实施例中,在HBase集群的配置文件中配置查询过滤协处理器类,包括:通过hbase-site.xml文件的hbase.coprocessor.region.classes属性添加查询过滤的协处理器类。
[0014] 在本公开的一种示例性实施例中,对HBase的表配置查询过滤的协处理器类,包括:通过hbase shell对HBase的表的coprocessor参数进行查询过滤协处理器类配置。
[0015] 在本公开的一种示例性实施例中,还包括:对每个RegionServer启动一个线程来处理请求。
[0016] 根据本发明的一方面,提出一种用于查询过滤HBase服务器数据的方法,该方法包括:构建查询请求;发送查询请求至HBase服务器;以及通过coprocessorService方法获取返回结果。
[0017] 在本公开的一种示例性实施例中,构建查询请求,包括:通过HBase协处理器的终端构建查询请求。
[0018] 在本公开的一种示例性实施例中,通过HBase协处理器的终端构建查询请求,包括:定义用于进程通信的proto文件。
[0019] 在本公开的一种示例性实施例中,proto文件,包括:结构化数据Message:结构化数据Message包括:请求输入消息与返回消息。
[0020] 在本公开的一种示例性实施例中,还包括:远程过程调用服务接口Service:所述远程过程调用服务接口Service包括:定义第一远程过程调用协议。
[0021] 在本公开的一种示例性实施例中,还包括:第一远程过程调用协议方法;所述第一远程过程调用协议方法包括:传入请求消息,输出返回消息。
[0022] 根据本发明的一方面,提出一种用于查询过滤HBase服务器数据的装置,该装置包括:加载模,用于响应客户端指令,调用HBase协处理器;接收模块,用于通过所述HBase协处理器获取查询请求;以及查询模块,用于通过预定配置与查询请求,生成查询结果。
[0023] 在本公开的一种示例性实施例中,查询模块包括:配置文件子模块,用于在HBase集群的配置文件中配置查询过滤协处理器类;以及配置表子模块,用于对HBase的表配置查询过滤的协处理器类。
[0024] 根据本发明的一方面,提出一种用于查询过滤HBase服务器数据的装置,该装置包括:包括:构建模块,用于构建查询请求;发送模块,用于发送查询请求至HBase服务器;以及结果模块,用于通过coprocessorService方法获取返回结果。
[0025] 根据本发明的用于查询过滤HBase服务器数据的方法及装置,能够极大地提高HBase服务器的数据查询效率。
[0026] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。附图说明
[0027] 通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1是根据一示例性实施例示出的一种用于查询过滤HBase服务器数据的方法的流程图
[0029] 图2是根据另一示例性实施例示出的一种用于查询过滤HBase服务器数据的方法的流程图。
[0030] 图3是根据一示例性实施例示出的一种用于查询过滤HBase服务器数据的装置的框图
[0031] 图4是根据另一示例性实施例示出的一种用于查询过滤HBase服务器数据的装置的框图。
[0032] 图5是根据另一示例性实施例示出的一种用于查询过滤HBase服务器数据的装置的框图。具体实施例
[0033] 现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
[0034] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
[0035] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0036] 附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0037] 应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
[0038] 本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
[0039] 图1是根据一示例性实施例示出的一种用于查询过滤HBase服务器数据的方法的流程图。
[0040] 如图1所示,在S102中,响应客户端指令,调用HBase协处理器。HBase的协处理器在HBase中属于高级的应用功能,它可以让开发者自定义的代码在服务器端执行,来完成特定的一些功能。协处理器框架为了更好支持其行为的灵活性,提供了两个不同方面的插件。一种插件是观察者(observer),类似于关系数据库的触发器(主动触发),在一些特定事件发生的时候被执行。另一种插件是终端(endpoint),动态的终端像存储过程。除了事件处理之外还需要将用户自定义操作添加到服务器端。用户代码可以被部署到管理数据的服务器端。endpoint通过添加一些远程调用来扩展远程过程调用协议-RPC(Remote Procedure Call Protocol)协议。在本实施例中,可例如,在客户端构建相关程序,通过协处理器加载客户端的程序进而进行后续处理。
[0041] 在S104中,通过HBase协处理器获取查询请求。可例如,获取来自于客户端的查询请求,查询请求可例如为proto文件。proto文件中可例如包含请求输入消息与返回消息。本发明不以此为限。
[0042] 在S106中,通过预定配置与查询请求,生成查询结果。通过预先设定的配置与获取到的查询请求,服务器经过查询过滤,形成对应于查询请求的查询结果。预先设定的配置可例如,在HBase集群的配置文件中配置查询过滤协处理器类,预先设定的配置还可例如对HBase的表配置查询过滤的协处理器类。
[0043] 根据本发明的用于查询过滤HBase服务器数据的方法,通过在服务器端进行预定的配置,进而实现服务器端的数据查询过滤功能的方式,可以极大地提高HBase服务器的数据查询效率。
[0044] 应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施例。
[0045] 在本公开的一种示例性实施例中,HBase服务器基于分布式系统的,需要部署分布式集群环境。可例如,在Centos6.5操作系统上安装jdk1.7,用Ambari部署分布式集群环境,该集群的组件可例如包含HDFS、YARN、MapReduce、HBase、Zookeeper。该分布式环境可例如,配置有5个节点,各节点配置64G内存、32个core、10个1T硬盘
[0046] 在本公开的一种示例性实施例中,还包括:通过HBase协处理器定义第一远程过程调用协议。远程过程调用协议-RPC协议(Remote Procedure Call Protocol)。RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。可例如,定义第一远程调用协议来辅助实现服务器端的数据查询过滤功能。在本实施例中,第一远程调用协议传入请求参数,返回请求结果。
[0047] 在本公开的一种示例性实施例中,还包括:通过HBase协处理器定义查询过滤类。在本公开的一种示例性实施例中,通过HBase协处理器的定义查询过滤类,包括:HBase协处理器继承第一远程过程调用协议;通过HBase协处理器的第一远程过程调用协议实现CoprocessorService与Coprocessor接口;以及重写HBase协处理器的第一远程过程调用协议。可例如,通过编写的终端接口继承上文所述的proto文件的编译类的Service,实现CoprocessorService、Coprocessor接口。重写Service的RPC编写自定义的查询过滤逻辑。
重写:又称Overriding,是指子类继承父类之后对父类的函数进行重新定义和实现。如果在子类中定义某方法与其父类有相同的名称和参数,可以认为该方法被重写。
[0048] 在本公开的一种示例性实施例中,预定配置包括:在HBase集群的配置文件中配置查询过滤协处理器类;以及对HBase的表配置查询过滤的协处理器类。在本公开的一种示例性实施例中,在HBase集群的配置文件中配置查询过滤协处理器类,包括:通过hbase-site.xml文件的hbase.coprocessor.region.classes属性添加查询过滤的协处理器类。在本公开的一种示例性实施例中,对HBase的表配置查询过滤的协处理器类,包括:通过hbase shell对HBase的表的coprocessor参数进行查询过滤协处理器类配置。
[0049] 在本公开的一种示例性实施例中,还包括:对每个RegionServer启动一个线程来处理请求。在本发明实施例中,通过终端Endpoint来实现服务器端的查询过滤,当Endpoint安装在集群上时,可以扩展Hbase服务器的RPC协议,可以在任何时候被客户端的实现触发,经过编程的终端接口在服务器的region上运行,将结果返回给客户端。在Hbase服务器中,Region是HBase数据存储和管理的基本单位。一个表中可以包含一个或多个Region。每个Region只能被一个RS(RegionServer)提供服务,RS可以同时服务多个Region,来自不同RS上的Region组合成表格的整体逻辑视图。在本实施例中,为每个RegionServer启动一个线程,经过RPC调用获取到所需结果,减少了RPC通讯。
[0050] 根据本发明的用于查询过滤HBase服务器数据的方法,通过为每个RegionServer启动一个线程的方式,能够减少了RPC通讯,进而使得数据的查询过滤在服务器端实现,减少了网络开销,提高了查询效率。
[0051] 图2是根据另一示例性实施例示出的一种用于查询过滤HBase服务器数据的方法的流程图。
[0052] 如图2所示,在S202中,构建查询请求。查询请求可例如为proto文件。proto文件可例如为结构化数据Message,proto文件中可例如包含请求输入消息与返回消息。还可例如,通过编译器对该proto文件进行编译,本发明不以此为限。
[0053] 在S204中,发送查询请求至HBase服务器。
[0054] 在S206中,通过coprocessorService方法获取返回结果。Endpoint协处理器在Region上下文中运行,一个HBase表可能有多个Region。因此客户端可以指定调用某一个单个Region上的协处理器,在单个Region上进行处理并返回一定结果;也可以调用一定范围内的若干Region上的协处理器并发执行,并对结果进行汇总处理。在本发明实施例中,可例如,调用表的coprocessorService获取到查询结果。coprocessorService只调用单个Region上的协处理器。coprocessorService方法采用RowKey(行主键)指定HBase服务器的Region。coprocessorService方法返回类型为CoprocessorRpcChannel的对象,该RPC通道连接到由Rowkey指定的Region上,通过这个通道,可以调用该Region上部署的协处理器RPC,进而获取到返回结果。
[0055] 根据本发明的用于查询过滤HBase服务器数据的方法,通过在客户端端构建查询请求,并且利用coprocessorService方法获取返回结果的方式获取服务器端的数据查询过滤结果,可以极大地提高数据查询效率。
[0056] 应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施例。
[0057] 在本公开的一种示例性实施例中,构建查询请求,包括:通过HBase协处理器的终端构建查询请求。Hbase的协处理器允许用户通过客户端的操作,在region服务器上运行自己的代码,更准确的说是允许用户执行region级的操作,并且可以使用与RDBMS中的触发器类似的功能。endpoint协处理类似于其他数据库引擎中的存储过程。从客户端看,调用一个endpoint协处理器类似于调用其他HBase命令,只是其功能建立在定义协处理器的定制代码上,通常先创建请求对象,然后把它传给HtableInterface在集群上执行,最后收集结果。
[0058] 在本公开的一种示例性实施例中,通过HBase协处理器的终端构建查询请求,包括:定义用于进程通信的proto文件。在本公开的一种示例性实施例中,proto文件,包括:结构化数据Message;结构化数据Message包括:请求输入消息与返回消息。
[0059] 在本公开的一种示例性实施例中,客户端编写类引入proto编译类,定义请求输入参数然后调用表的CoprocessorService方法回去返回结果。
[0060] 在本公开的一种示例性实施例中,还包括:远程过程调用服务接口Service:所述远程过程调用服务接口Service包括:定义第一远程过程调用协议。
[0061] 在本公开的一种示例性实施例中,还包括:第一远程过程调用协议方法;所述第一远程过程调用协议方法包括:传入请求消息,输出返回消息。
[0062] 本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
[0063] 此外,需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0064] 下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
[0065] 图3是根据一示例性实施例示出的一种用于查询过滤HBase服务器数据的装置的框图。
[0066] 加载模块302用于响应客户端指令,调用HBase协处理器。
[0067] 接收模块304用于通过所述Hbase协处理器获取查询请求。
[0068] 查询模块306用于通过预定配置与查询请求,生成查询结果。
[0069] 根据本发明的用于查询过滤HBase服务器数据的装置,通过在服务器端进行预定的配置,进而实现服务器端的数据查询过滤的方式,可以极大地提高HBase服务器的数据查询效率。
[0070] 图4是根据另一示例性实施例示出的一种用于查询过滤HBase服务器数据的装置的框图。图4是图3中查询模块306的示例性描述。
[0071] 配置文件子模块3062用于在HBase集群的配置文件中配置查询过滤协处理器类。
[0072] 配置表子模块3064用于对HBase的表配置查询过滤的协处理器类。
[0073] 图5是根据另一示例性实施例示出的一种用于查询过滤HBase服务器数据的装置的框图。
[0074] 构建模块502用于构建查询请求。
[0075] 发送模块504用于发送查询请求至HBase服务器。
[0076] 结果模块506用于通过coprocessorService方法获取返回结果。
[0077] 根据本发明的用于查询过滤HBase服务器数据的装置,通过在客户端端构建查询请求,并且利用coprocessorService方法获取返回结果的方式,获取服务器端的数据查询过滤的结果,可以极大地提高数据查询效率。
[0078] 本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0079] 通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。
[0080] 通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的用于查询过滤HBase服务器数据的方法及装置具有以下优点中的一个或多个。
[0081] 根据一些实施例,本发明的用于查询过滤HBase服务器数据的方法,通过在服务器端进行预定的配置,进而实现服务器端的数据查询过滤的方式,可以极大地提高HBase服务器的数据查询效率。
[0082] 根据另一些实施例,本发明的用于查询过滤HBase服务器数据的方法,通过为每个RegionServer启动一个线程的方式,能够减少了RPC通讯,进而使得数据的查询过滤在服务器端实现,减少了网络开销,提高了查询效率。
[0083] 根据另一些实施例,本发明的用于查询过滤HBase服务器数据的方法,通过在客户端端构建查询请求,并且利用coprocessorService方法获取返回结果的方式,获取服务器端的数据查询过滤功能,可以极大地提高数据查询效率。
[0084] 以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
[0085] 此外,本说明书说明书附图所示出的结构、比例、大小等,均仅用以配合说明书所公开的内容,以供本领域技术人员了解与阅读,并非用以限定本公开可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本公开所能产生的技术效果及所能实现的目的下,均应仍落在本公开所公开的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“第一”、“第二”及“一”等的用语,也仅为便于叙述的明了,而非用以限定本公开可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当也视为本发明可实施的范畴。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈