使用HBase Shell删除表
使用 drop 命令,可以删除表.在删除表之前,必须禁用它.
hbase(main):018:0> disable 'emp'0 row(s) in 1.4580 secondshbase(main):019:0> drop 'emp'0 row(s) in 0.3060 seconds
验证是否使用exists命令删除了表.
hbase(main):020:07gt; exists 'emp'Table emp does not exist0 row(s) in 0.0730 seconds
drop_all
此命令用于删除与命令中给出的"正则表达式"匹配的表.其语法如下:
hbase> drop_all't.*'
注意:在删除表之前,必须禁用它.
示例
假设有名为raja,rajani,rajendra,rajesh和raju的表.
hbase(main):017:0> listTABLErajarajanirajendra rajeshraju9 row(s) in 0.0270 seconds
所有这些表都以字母 raj 开头.首先,让我们使用 disable_all 命令禁用所有这些表,如下所示.
hbase(main):002:0> disable_all 'raj.*'rajarajanirajendrarajeshrajuDisable the above 5 tables (y/n)?y5 tables successfully disabled
现在可以使用 drop_all 命令删除所有这些表下面.
hbase(main):018:0> drop_all 'raj.*'rajarajanirajendrarajeshrajuDrop the above 5 tables (y/n)?y5 tables successfully dropped
使用Java API删除表
您可以删除使用 HBaseAdmin 类中的 deleteTable()方法的表格.按照下面给出的步骤使用java API删除表.
步骤1
实例化HBaseAdmin类.
// creating a configuration objectConfiguration conf = HBaseConfiguration.create();// Creating HBaseAdmin objectHBaseAdmin admin = new HBaseAdmin(conf);
第2步
使用 disableTable()方法禁用表格b> HBaseAdmin 类.
admin.disableTable("emp1");
第3步
现在使用 deleteTable()方法删除表格 HBaseAdmin 类.
admin.deleteTable("emp12");
以下是在HBase中删除表的完整java程序.
import java.io.IOException;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.client.HBaseAdmin;public class DeleteTable { public static void main(String[] args) throws IOException { // Instantiating configuration class Configuration conf = HBaseConfiguration.create(); // Instantiating HBaseAdmin class HBaseAdmin admin = new HBaseAdmin(conf); // disabling table named emp admin.disableTable("emp12"); // Deleting emp admin.deleteTable("emp12"); System.out.println("Table deleted"); }}
编译并执行上述程序,如下所示.
$ javac DeleteTable.java $ java DeleteTable
以下应该是输出:
Table deleted