thrift hbase java_手把手教你通过Thrift 访问ApsaraDB for HBase

摘要: 手把手教你使用Thrift访问ApsaraDB for HBase

Thrift 多语言接入

​ Thrift 提供多语言访问HBase的能力,支持的语言包从Thrift官网看括: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml , Delphi 以及别的语言.主要流程是用户thrift Client 通过Thrift协议访问HBase的thriftserver,thriftserver做请求转发给HBase的存储服务来做数据的读以及写操作.大概架构图如下:

039233e3cffd3fe4df7051ac096d5ca4.png

​ 要通过thrift 多语言访问HBase需要以下几步:

一、开通HBase thriftserver服务:

​ 在用户自己管控页面点击这里参考开通thriftserver服务化(高可用版本thriftserver),会得到一个host:port的访问入口;或者自己可以选择ECS自建thriftserver方法,参考这里,最终自建ECS的ip (host)以及默认的话9090端口作为访问入口。

3408b81794d377ffd98291103b1f5a8c.png

二、用户Thrift client访问:

​ 一般客户常见的访问方式是python的访问方式以及php的访问方式 ,这里我们先一步步给出php的访问方式;

2.1 . 以php走thrift访问HBase:

​ 2.1.1 . 安装thrift 编译环境;

​ 我们云HBase的thrift环境是0.9.0,所以建议客户自己建立自己的thrift环境也是0.9.0,这里可以从这里下载thrift的0.9.0 版本,下载的源码包我们后面会用到,这里需要先安装thrift编译环境,对于源码安装可以参考thrift官网;

通过如下命令可以看出安装thrift的版本信息;

777d32e14e3b892fe6303d145bf6b202.png

​ 2.1.2. 生成thrift访问client的访问文件;

​ 我们从这里下载出我们云HBase的Hbase.thrift文件,这里我们云HBase使用的是thrift1协议,具体可以参考文件看出使用格式,下载完成以后执行thrift命令进行编译;

​ 编译命令如下:

d32db52979f6ba431a45bd3801af700e.png

上述是语言的缩写,那么常见的有如下:

f1c9334fa9c9d72d8732be55848619fa.png

​ 执行thrift --gen php Hbase.thrift 以后会在目录下得到gen-php 这个就是我们需要的函数包文件;

25cd065e1b29e2551c239772ba442692.png

​ 此外我们在2.1.1得到thrift的源码包文件将下载到的Thrift源码文件夹下的/lib/php/lib下面的Thrift文件夹以及gen-php一起丢在我们的业务逻辑代码一个src目录下面,加上我们自己的client.php的代码,目录结果如下所示:

85f8e86f15e992b99c0f05d19dba48fc.png

​ 2.1.3. php访问代码编写;

​ 这个时候,我们来编写我们的client.php代码逻辑,上述的Thrift文件夹以及gen-php文件夹,可以随自己项目以及个人风格命名,这里方便大家搞清目录结构,就保留原来风格;下面贴出php的代码,我们下面的所有程序都是在HBase 建了一张表"new":

bde85d1c1c66fff84f17178400e4de14.png

​ 代码执行结果如下:

9c3282d0985a39e7ae4a5a3a0cc685c8.png

2.2.python访问流程;

​ 此外还有常见的python的客户,对于python的话,有happybase这种python的第三方包含thrift的库去做,我们见过一些客户使用Happybase进行访问HBase thrift,参见文章;此外,python 有丰富的库,我们通过pip可以安装thrift,以及访问HBase的thrift库;执行流程如下,假设用户已经安装python以及pip:

d945e24603e89b671b8e66b3f8ab77eb.png

​ 上面2步执行完成以后,既可以编写访问HBase的代码:

8c0198b84c1c33f86f2b3ec63fc46ee4.png

​ 对应上述的程序执行的结果如下:

91930c8cd62856f992407ab72a30d4bb.png

三、访问HBase thriftserver

​ 3.1、访问机器开通白名单

​ 将访问的机器的ip加入HBase集群的白名单,然后就可以正常执行代码;

18d2f98ba6e87494c006beb314052e9b.png

本文作者:玄陵

本文为云栖社区原创内容,未经允许不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值