HBase Thrift客户端Java API实践

  • 时间:
  • 浏览:5
  • 来源:uu快3开奖_uu快3娱乐_输钱

表名为test_info,列簇名称为info。

但是,亲们过后开始基于中间生成的Thrift代码来实现对HBase表的操作。

亲们在客户端,进行了一层抽象,更加便于传递各种参数,抽象类为AbstractHBaseThriftService,代码如下所示:

比如,亲们你都可不可以实现分页的逻辑,完后 和传统的关系型数据库操作有些不同。基于HBase表的实现是,首先打开一两个多多多 Scanner实例(类事 调用scannerOpen()),返回一两个多多多 id,但是再使用该id,调用scannerGetList()法子(都可不可以指定每次返回十几个 记录的变量nbRows的值),返回一两个多多多 记录列表,反复调用该scannerGetList()法子,直到此次没人 结果返回为止。中间会通过测试用例来实际体会。

现在,亲们基于上抽象出来的客户端操作接口,给出一两个多多多 基本的实现,代码如下所示:

这里,亲们基于Java语言,使用HBase 的Thrift 客户端API访问HBase表。事实上,完后 使用Java来实现对HBase表的操作,最好是使用HBase的原生API,无论从性能还是便利性方面,全是提供更好的体验。使用Thrift API访问,实际也是在HBase API之上进行了一层封装,完后 初次使用Thrift API感觉很别扭,有完后 需用参考Thrift服务端的实现代码。

准备工作如下:

HBase的Thrift API定义,都可不可以通过链接 http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup看到,亲们需用安装Thrift编译器,都可不可以生成HBase跨语言的API。

首先下载中间链接的内容,保存为Hbase.thrift。

但是,执行如下命令,生成不同编程语言的HBase API:

这里,简单叙述一下,亲们提供的客户端API的基本功能:

中间,HBase的Thrift服务端口为9090,下面通过Thrift API访问的完后 ,需用用到,而全是HBase的服务端口(默认80000)。

接着,实现一两个多多多 简单的例子,访问Hbase表。

首先,亲们通过HBase Shell创建一两个多多多 表:

中间代码,给出了基本的实现,接着亲们给出测试用例,调用亲们实现的客户端操作,与HBase表进行交互。实现的测试用例类如下所示:

中间的测试都可不可以实现操作Hbase表数据。另外,在生成的Thrift客户端代码中,org.apache.hadoop.hbase.thrift.generated.Hbase.Iface中给出了完整篇 的服务接口,都可不可以根据需用来挑选,客户端org.apache.hadoop.hbase.thrift.generated.Hbase.Client实现了与Thrift交互的有些逻辑的处里,通过该类对象都可不可以代理HBase提供的Thrift服务。