美文网首页
Python 操作 HBase 常用方法总结

Python 操作 HBase 常用方法总结

作者: 马赛克同学 | 来源:发表于2019-08-17 14:54 被阅读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(写的非常好)

    相关文章

      网友评论

          本文标题:Python 操作 HBase 常用方法总结

          本文链接:https://www.haomeiwen.com/subject/jrzhsctx.html