python 通过thrift服务连接Hbase

一直在找python连接Hbase的方法,方法之一是thrift 服务,Hbase还提供thrift2服务,这次我们使用thrift服务连接Hbase。

需要安装两个包:       

pip install  thrift
pip install hbase-thrift

HBase 开启thrift服务:  hbase-daemon.sh start thrift

连接Hbase:

from thrift.transport import TSocket, TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
ip='master'
port=9090
transport = TTransport.TBufferedTransport(TSocket.TSocket(ip, port))
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Hbase.Client(protocol)
transport.open()
# transport.close()

插入操作:

from hbase.ttypes import ColumnDescriptor,Mutation, BatchMutation
data = {
        "col:addr": "2",
         "col:name": "cu",
    
 }
columns = map(lambda (k, v): Mutation(column=k,value=v), data.items())
client.mutateRow("job", "0011", columns)

扫描job表:

so = client.scannerOpen("job", "", None)
r= True
while r:
    r= client.scannerGet(so)
    # r =client.scannerGetList(so, 4)
    print r
client.scannerClose(so)

函数说明:

 mutateRow(table, row, mutaions)

功能: 向Hbase写入数据.

 1. table 是表名
 2. mutaions是一个 Mutation的 list [Mutation(column="col:name",value="wujq")]
 3. 如果muations里面有一个抛出异常,那边整个数据都无法写入
 4. 如果写入成功,那边对于么一列的timestamp是一样的

 

mutateRowTs(tableName, row, mutations, timestamp)

timestamp 是时间戳

 

mutateRows(tableName, rowBatches)

批量写入

rowBatches 是 BatchMutation list   eg:[BatchMutation("0007",[Mutation(column="col:name",value="wujq")]),
                                        BatchMutation("0008",[Mutation(column="col:name",value="wujq")])]

 

deleteAllRow(tableName, row)

删除一行

 

deleteAll(tableName, row, column)

删除某一列

 

get(tableName, row, column)

获取值

 

getRow(tableName, row)

获取row记录值

 

disableTable(tableName)

禁用表

 

deleteTable(tableName)

删除表

 

createTable(tableName, columnFamilies)

创建表

tableName : 表名

columnFamilies: 列簇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值