python 操做 hbase

python 是萬能的,固然也能夠經過api去操做big database 的hbase了,python是經過thrift去訪問操做hbasepython

 

如下是在centos7 上安裝操做,前提是hbase已經搭建成功了web

1.安裝thrift模塊apache

  下載thrift:https://pypi.python.org/packages/a3/ea/84a41e03f1ab14fb314c8bcf1c451090efa14c5cdfb9797d1079f502b54e/thrift-0.10.0.zip#md5=76bb768a210257dd203923110042e560centos

        這裏能夠進入python依賴庫選擇合適的thrift版本,我這裏是0.10.0api

        解壓安裝: unzip thrift-0.10.0.zippython2.7

         cd thrift-0.10.0  && python setup.py installoop

  驗證是否安裝成功,進入python 操做窗口,直接python ,而後 import thrift,沒有異常則安裝thrift模塊成功centos7

 

2.或許你hbase安裝的是已經編譯好的bin文件,下載好對應版本的hbase源碼包就是src那個 解壓進入code

cd  hbase-1.3.0/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift

  裏面有一個Hbase.thrift文件 ,執行server

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了,先眯一下子,稍後繼續.....

相關文章
相關標籤/搜索