1、通过hbase shell删除一个表,首先需要将表禁用,然后再进行删除,命令如下:
disable 'tablename'
drop 'tablename'
删除emp表,并且验证是否删除,结果如下:
删除所有匹配的表,首先将要删除的所有表禁用,命令如下:
disable 'table.x'
drop 'table.x'
假如有一些表以tab开头,通过如下操作,可以将这些表全部删除:
disable_all 'tab.*'
drop_all 'tab.*'
2、通过python thrift API删除表,代码如下:
# coding=utf-8
from thrift.transport.TSocket import TSocket
from thrift.transport.TTransport import TBufferedTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
# 主机地址及端口号,端口号默认为9090
host = 'localhost'
port = 9090
# 初始化链接
transport = TBufferedTransport(TSocket(host, port))
transport.open()
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Hbase.Client(protocol)
# 获取表的列表
tables_list = client.getTableNames()
print tables_list
# 根据名称,删除一个表
if client.isTableEnabled('emp'):
client.disableTable('emp')
client.deleteTable('emp')
else:
client.deleteTable('emp')
tables_list = client.getTableNames()
print tables_list
transport.close()
python thrift API中没有删除多个表的接口,可以通过遍历删除的方式删除多个表。