一、概述Hbase是目前比较火的列存储数据库,由于Hbase是用Java写的,因此它原生地提供了Java接口,对非Java程序人员,怎么办呢?幸好它提供了thrift接口服务器,因此也可以采用其他语言来编写Hbase的客户端,本文即是Hbase C++接口的介绍。目前的Hbase(0.94.11,本文即基于此版本)有两套thrift接口(可以叫thrift1和thrift2),它们并不兼容(随意性太强,这可能是所有开源软件都具有的问题)。根据官方文档,thrift1很可能被抛弃,但网上的文章基本是介绍thrift1的,本文则主要介绍thrift2。 要使用Hbase的thrift接口,必须将它的服务启动,命令行为: [plain] view plaincopy
二、thrift1与thrift2的简单比较两个版本的thrift文件位于如下位置,[plain] view plaincopy
thrift1的文件有24K左右,而thrift2只有12K左右,看来新版做了大量的简化。 命名空间上,新版都将thrift改为thrift2,以示区别。下表是thrift和thrift2的区别,可以看出,二者真的差别挺大,特别是服务中的方法,thrift2做了简化与合成,并把DDL有关的内容去掉了,关于这些结构、服务的具体意义,请参阅thrift文件中的注释,下文将详细列出。
三、thrift2接口客户端生成文件包含6个文件hbase_constants.cpp/.h、 hbase_types.cpp/.h、THBaseService.cpp/.h,结构的定义都在hbase_types中,服务方法的实现在THBaseService中(关于这几个文件的详细说明,见作者其他博文)。由于我们通常关心数据的查、增、删(对Hbase来说,改是增加一个新“版本”),因此下面的讨论只围绕这些操作展开。 四、thrift2接口主要结构
五、thrift2接口service函数
|
|