Python 操作 HBase 常用方法总结

2019-08-17  本文已影响0人  马赛克同学

一、需要的python 模块

thrift

hbase-thrift

二、连接

from thrift.transportimport TSocket, TTransport

from thrift.protocolimport TBinaryProtocol, TCompactProtocol

from hbaseimport Hbase

hbase_host = '10.10.70.85'

hbase_port = '9090'

# server端地址和端口,web是HMaster也就是thriftServer主机名,9090是thriftServer默认端口

transport = TSocket.TSocket(hbase_host, hbase_port)

# 可以设置超时(我这里5000)

transport.setTimeout(5000)

# 设置传输方式(TFramedTransport或TBufferedTransport)

transport = TTransport.TBufferedTransport(transport)

# 设置传输协议(两种协议)

protocol = TBinaryProtocol.TBinaryProtocol(transport)

# protocol = TCompactProtocol.TCompactProtocol(transport)

# 确定客户端

client = Hbase.Client(protocol)

三、常用方法总结与说明

1、创建表

createTable(tbaleName,columnFamilies)

参数

tableName :表名

columnFamilies:列族名

实例

tableName = 'Person'

# 定义列族

columnFamilies = ColumnDescriptor(name='info')

# 列族要放在列表里面(元组也可以)

table = client.createTable(tableName, [columnFamilies])

2、启用表

enabledTable(tbaleName)

参数

tableName:表名

实例

#若要启用的表是未禁用的表将会引发IOError错误

tableName = 'persion'

client.enabledTable(tableName)

3、禁用表

disableTable(tbaleName)

参数

tableName :表名

实例

#若要禁用的表是未启用的表将会引发IOError错误

tableName = 'person'

client.disableTable(tableName)

4 、表是否启用验证

isTableEnabled(tbaleName)

参数

tableName :表名

返回值

bool

实例

tableName = 'person'

enabled = client.isTableEnabled(tableName)

print(enabled)

5、获取表名

getTableNames(tbaleName)

参数

tableName : 表名

返回值

以列表形式返回 字符串列表

tableName = 'person'

tables = client.getTableNames(tableName)

6 、获取所有列族信息

getColumnDescriptors(tbaleName)

参数

tableName :表名

返回值

返回一个字典, 例如下面 包含两个列族(info, num)

{'info:': ColumnDescriptor(name='info:', maxVersions=1, compression='NONE', inMemory=False, bloomFilterType='ROW', bloomFilterVectorSize=0, bloomFilterNbHashes=0, blockCacheEnabled=True, timeToLive=2147483647), 'num:': ColumnDescriptor(name='num:', maxVersions=1, compression='NONE', inMemory=False, bloomFilterType='ROW', bloomFilterVectorSize=0, bloomFilterNbHashes=0, blockCacheEnabled=True, timeToLive=2147483647)}

实例

tableName = 'person'

columndescriptors = client.getColumnDescriptors(tableName)

7、获取所有与表关联的regions

getTableRegions(tbaleName)

参数

tableName : 表名

返回值

返回一个TRegionInfo对象列表

实例

tableName = 'person'

t_region_info = client.getTableRegions(tableName)

未完结 后续继续补充

参考源 :https://blog.csdn.net/y472360651/article/details/79055875(写的非常好)

上一篇 下一篇

猜你喜欢

热点阅读