HBase Thrift客户端Java API实践

  • 时间:
  • 浏览:1
  • 来源:彩神幸运飞艇_神彩幸运飞艇官方

后面 的测试都必须实现操作Hbase表数据。另外,在生成的Thrift客户端代码中,org.apache.hadoop.hbase.thrift.generated.Hbase.Iface中给出了完整的服务接口,都必须根据必须来选折 ,客户端org.apache.hadoop.hbase.thrift.generated.Hbase.Client实现了与Thrift交互的这种逻辑的处里,通过该类对象都必须代理HBase提供的Thrift服务。

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

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

怎么让,大家刚开始了了基于后面 生成的Thrift代码来实现对HBase表的操作。

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

后面 ,HBase的Thrift服务端口为9090,下面通过Thrift API访问的之前 ,必须用到,而前会 HBase的服务端口(默认400000)。

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

首先,大家通过HBase Shell创建两个表:

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

准备工作如下:

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

比如,大家不想实现分页的逻辑,机会和传统的关系型数据库操作这种不同。基于HBase表的实现是,首先打开两个Scanner实例(这种调用scannerOpen()),返回两个id,怎么让再使用该id,调用scannerGetList()方法(都必须指定每次返回2个记录的变量nbRows的值),返回两个记录列表,反复调用该scannerGetList()方法,直到此次那么结果返回为止。后面 会通过测试用例来实际体会。

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

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: