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