一、概述Hbase是目前比較火的列存儲(chǔ)數(shù)據(jù)庫(kù),由于Hbase是用Java寫(xiě)的,因此它原生地提供了Java接口,對(duì)非Java程序人員,怎么辦呢?幸好它提供了thrift接口服務(wù)器,因此也可以采用其他語(yǔ)言來(lái)編寫(xiě)Hbase的客戶(hù)端,本文即是Hbase C++接口的介紹。目前的Hbase(0.94.11,本文即基于此版本)有兩套thrift接口(可以叫thrift1和thrift2),它們并不兼容(隨意性太強(qiáng),這可能是所有開(kāi)源軟件都具有的問(wèn)題)。根據(jù)官方文檔,thrift1很可能被拋棄,但網(wǎng)上的文章基本是介紹thrift1的,本文則主要介紹thrift2。 要使用Hbase的thrift接口,必須將它的服務(wù)啟動(dòng),命令行為: [plain] view plaincopy
二、thrift1與thrift2的簡(jiǎn)單比較兩個(gè)版本的thrift文件位于如下位置,[plain] view plaincopy
thrift1的文件有24K左右,而thrift2只有12K左右,看來(lái)新版做了大量的簡(jiǎn)化。 命名空間上,新版都將thrift改為thrift2,以示區(qū)別。下表是thrift和thrift2的區(qū)別,可以看出,二者真的差別挺大,特別是服務(wù)中的方法,thrift2做了簡(jiǎn)化與合成,并把DDL有關(guān)的內(nèi)容去掉了,關(guān)于這些結(jié)構(gòu)、服務(wù)的具體意義,請(qǐng)參閱thrift文件中的注釋?zhuān)挛膶⒃敿?xì)列出。
三、thrift2接口客戶(hù)端生成文件包含6個(gè)文件hbase_constants.cpp/.h、 hbase_types.cpp/.h、THBaseService.cpp/.h,結(jié)構(gòu)的定義都在hbase_types中,服務(wù)方法的實(shí)現(xiàn)在THBaseService中(關(guān)于這幾個(gè)文件的詳細(xì)說(shuō)明,見(jiàn)作者其他博文)。由于我們通常關(guān)心數(shù)據(jù)的查、增、刪(對(duì)Hbase來(lái)說(shuō),改是增加一個(gè)新“版本”),因此下面的討論只圍繞這些操作展開(kāi)。 四、thrift2接口主要結(jié)構(gòu)
五、thrift2接口service函數(shù)
|
|