使用Shell删除表

用drop命令可以删除表。在删除一个表之前必须先将其禁用。

  1. hbase(main):018:0> disable 'emp'
  2. 0 row(s) in 1.4580 seconds
  3. hbase(main):019:0> drop 'emp'
  4. 0 row(s) in 0.3060 seconds
  1. 使用exists 命令验证表是否被删除。
  1. hbase(main):020:0> exists 'emp'
  2. Table emp does not exist
  3. 0 row(s) in 0.0730 seconds


drop_all

  1. 这个命令是用来在给出删除匹配“regex”表。它的语法如下:
  2. **注意:**要删除表,则必须先将其禁用。
  1. hbase> drop_all t.*’

示例

  1. 假设有一些表的名称为raja, rajani, rajendra, rajesh, raju
  1. hbase(main):017:0> list
  2. TABLE
  3. raja
  4. rajani
  5. rajendra
  6. rajesh
  7. raju
  8. 9 row(s) in 0.0270 seconds
  1. 所有这些表以字母raj开始。首先使用disable_all命令禁用所有这些表如下所示。
  1. hbase(main):002:0> disable_all 'raj.*'
  2. raja
  3. rajani
  4. rajendra
  5. rajesh
  6. raju
  7. Disable the above 5 tables (y/n)?
  8. y
  9. 5 tables successfully disabled


  1. 现在,可以使用 **drop_all **命令删除它们,如下所示。
  1. hbase(main):018:0> drop_all 'raj.*'
  2. raja
  3. rajani
  4. rajendra
  5. rajesh
  6. raju
  7. Drop the above 5 tables (y/n)?
  8. y
  9. 5 tables successfully dropped


使用Java API删除表

  1. 可以使用 HBaseAdmin 类的deleteTable()方法删除表。按照下面给出是使用Java API来删除表中的步骤。

第1步

  1. 实例化HBaseAdmin类。
  1. // creating a configuration object
  2. Configuration conf = HBaseConfiguration.create();
  3. // Creating HBaseAdmin object
  4. HBaseAdmin admin = new HBaseAdmin(conf);


第2步

  1. 使用HBaseAdmin类的disableTable()方法禁止表。
  2. admin.disableTable("emp1");

第3步

  1. 现在使用HBaseAdmin类的deleteTable()方法删除表。
  1. admin.deleteTable("emp12");


下面给出的是完整的Java程序用于删除HBase表。

  1. import java.io.IOException;
  2. import org.apache.hadoop.hbase.HBaseConfiguration;
  3. import org.apache.hadoop.conf.Configuration;
  4. import org.apache.hadoop.hbase.client.HBaseAdmin;
  5. public class DeleteTable {
  6. public static void main(String[] args) throws IOException {
  7. // Instantiating configuration class
  8. Configuration conf = HBaseConfiguration.create();
  9. // Instantiating HBaseAdmin class
  10. HBaseAdmin admin = new HBaseAdmin(conf);
  11. // disabling table named emp
  12. admin.disableTable("emp12");
  13. // Deleting emp
  14. admin.deleteTable("emp12");
  15. System.out.println("Table deleted");
  16. }
  17. }
  1. 编译和执行上述程序如下所示。
  1. $javac DeleteTable.java
  2. $java DeleteTable
  1. 下面是输出结果:
  1. Table deleted