python 是萬能的,當然也可以通過api去操作big database 的hbase了,python是通過thrift去訪問操作hbase
以下是在centos7 上安裝操作,前提是hbase已經搭建成功了
1.安裝thrift模塊
下載thrift:https://pypi.python.org/packages/a3/ea/84a41e03f1ab14fb314c8bcf1c451090efa14c5cdfb9797d1079f502b54e/thrift-0.10.0.zip#md5=76bb768a210257dd203923110042e560
這里可以進入python依賴庫選擇合適的thrift版本,我這里是0.10.0
解壓安裝: unzip thrift-0.10.0.zip
cd thrift-0.10.0 && python setup.py install
驗證是否安裝成功,進入python 操作窗口,直接python ,然后 import thrift,沒有異常則安裝thrift模塊成功
2.或許你hbase安裝的是已經編譯好的bin文件,下載好對應版本的hbase源碼包就是src那個 解壓進入
cd hbase-1.3.0/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift
里面有一個Hbase.thrift文件 ,執行
thrift -gen py Hbase.thrift
執行后會有gen-py文件夾,cp里面文件到指定python-site處
cp -R hbase /usr/lib/python2.7/site-packages/
3. 啟動hbase的thrift服務,一般在HMaster上啟動
hbase-daemon.sh start thrift
編輯python文件連接hbase並且操作查詢,如下:
from thrift import Thrift
from thrift.transport import TSocket, TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
#server端地址和端口,web是HMaster也就是thriftServer主機名,9090是thriftServer默認端口
transport = TSocket.TSocket('web', 9090)
#可以設置超時
transport.setTimeout(5000)
#設置傳輸方式(TFramedTransport或TBufferedTransport)
trans = TTransport.TBufferedTransport(transport)
#設置傳輸協議
protocol = TBinaryProtocol.TBinaryProtocol(trans)
#確定客戶端
client = Hbase.Client(protocol)
#打開連接
transport.open()
from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation, TRegionInfo
from hbase.ttypes import IOError, AlreadyExists
#獲取表名
client.getTableNames()
最后結果如圖

看到獲取的表明說明連接成功,並且可以查詢,接下來就要去猛找python操作hbase的相關api了,先眯一會兒,稍后繼續.....
