一、需要的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(写的非常好)
网友评论