手把手教你通过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的存储服务来做数据的读以及写操作.大概架构图如下:
要通过thrift 多语言访问HBase需要以下几步:
一、开通HBase thriftserver服务:
在用户自己管控页面点击这里参考开通thriftserver服务化(高可用版本thriftserver),会得到一个host:port的访问入口;或者自己可以选择ECS自建thriftserver方法,参考这里,最终自建ECS的ip (host)以及默认的话9090端口作为访问入口。
二、用户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的版本信息;
2.1.2. 生成thrift访问client的访问文件;
我们从这里下载出我们云HBase的Hbase.thrift文件,这里我们云HBase使用的是thrift1协议,具体可以参考文件看出使用格式,下载完成以后执行thrift命令进行编译;
编译命令如下:
上述是语言的缩写,那么常见的有如下:
执行thrift --gen php Hbase.thrift 以后会在目录下得到gen-php 这个就是我们需要的函数包文件;
此外我们在2.1.1得到thrift的源码包文件将下载到的Thrift源码文件夹下的/lib/php/lib下面的Thrift文件夹以及gen-php一起丢在我们的业务逻辑代码一个src目录下面,加上我们自己的client.php的代码,目录结果如下所示:
2.1.3. php访问代码编写;
这个时候,我们来编写我们的client.php代码逻辑,上述的Thrift文件夹以及gen-php文件夹,可以随自己项目以及个人风格命名,这里方便大家搞清目录结构,就保留原来风格;下面贴出php的代码,我们下面的所有程序都是在HBase 建了一张表"new":
代码执行结果如下:
2.2.python访问流程;
此外还有常见的python的客户,对于python的话,有happybase这种python的第三方包含thrift的库去做,我们见过一些客户使用Happybase进行访问HBase thrift,参见文章;此外,python 有丰富的库,我们通过pip可以安装thrift,以及访问HBase的thrift库;执行流程如下,假设用户已经安装python以及pip:
上面2步执行完成以后,既可以编写访问HBase的代码:
对应上述的程序执行的结果如下:
三、访问HBase thriftserver
3.1、访问机器开通白名单
将访问的机器的ip加入HBase集群的白名单,然后就可以正常执行代码;
本文作者:玄陵
本文为云栖社区原创内容,未经允许不得转载。