首页 > 大数据 > > HBase Thrift协议编程入门教程
文章来源:加米谷大数据
Thrift 是一个软件框架,用来进行可扩展且跨语言的服务的开发。Thrift 定义了一种描述对象和服务的接口定义语言(Interface Definition Language, IDL),它先通过 IDL 来定义 RPC 的接口和数据类型,再通过编译器生成不同语言的代码,并由生成的代码负责 RPC 协议层和传输层的实现。
Thrift 支持的语言有 C++、Java、Python、PHP 等。下面将使用 Python 语言来实现通过 Thrift 客户端访问 HBase,这种方式完全脱离了 Java 和 JVM。
Thrift 实际上是实现了 C/S 模式,通过代码生成工具将接口定义文件生成服务器端和客户端代码,从而实现服务端和客户端跨语言的支持,例如,客户端用 Python 实现,服务器使用 Java 实现。用户在Thirft描述文件中声明自己的服务,这些服务经过编译后会生成相应语言的代码文件,然后用户实现服务即可。
Thrift 包含了三个重要的组件,分别为 protocal、transpor t和 server。 其中,protocol 是协议层,用来定义数据的传输格式;transport 是传输层,定义数据的传输方式,可以为 TCP/IP 传输也可以是内存共享的方式;server 定义支持的服务模型。
下面来看如何使用 Thrift 生成 Python 语言的客户端访问 HBase。
使用 Python 调用 HBase,需要启动 Thrift 服务,因此,需要先安装 Thrift。由于 Linux 操作系统中没有内置 Thrift 的安装包,因此需要手工建立 Thrift。
从 Thrift 官网上下载源码 tar 包,并解压到常用目录下:

在编译安装 Thrift 之前,需要安装依赖的库,如 Automake、LibTool、Bison、Boost 等,具体依赖库的安装参考 Thrift 官网安装手册,依赖库下载完后,即可编译并安装 Thrift:

通过调用 thrift 命令可以验证安装是否成功:

HBase 的源代码中,hbase.thrift 文件描述了 HBase 服务 API 和有关对象的 IDL 文件,需要使用 thrift 命令对此文件进行编译,生成 Python 连接 HBase 的库包。
Hbase.thrift 文件在 hbase-1.2.6/hbase- thrift/src/main/resources/org/apache/hadoop/hbase/thrift 目录下,编译操作如下:

生成的库文件在 gen-py 的子目录下,如下所示:

将 gen-py 目录下的 hbase 子目录复制到工程目录 python3.6/site-packages/hbase下直接使用,如下所示:

这些命令执行成功后,表示使用 Python 语言访问 HBase 的客户端已经完成。
在服务器上使用 star-hbase.sh 命令启动 HBase 服务,使用 jps 命令确定 HBase 已经启动并正在运行后,启动 Thrift服务,使用默认的设置即可正常工作,如下所示:

目前客户端与服务器都已准备妥善,接下来测试其是否可用。在客户端的Python项目目录下 打开一个终端窗口,再次启动Python:

以上代码简单地完成了使用Thrift客户端访问HBase,另外还有创建表、插入数据、查询数据等操作。用户可查询 Python 项目下的 hbase/hbase.py 文件,里面提供了各种操作方法。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3157960/ ,如需转载,请注明出处,否则将追究法律责任。