HBase删除表

忘是亡心i 2022-03-31 06:28 464阅读 0赞

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

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

drop_all

这个命令是用来在给出删除匹配“regex”表。它的语法如下:

  1. hbase> drop_all t.*’

注意:要删除表,则必须先将其禁用。
示例
假设有一些表的名称为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

所有这些表以字母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

现在,可以使用 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删除表
可以使用 HBaseAdmin 类的deleteTable()方法删除表。按照下面给出是使用Java API来删除表中的步骤。

第1步 实例化HBaseAdmin类。

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

第2步 使用HBaseAdmin类的disableTable()方法禁止表。

  1. admin.disableTable("emp1");

第3步 现在使用HBaseAdmin类的deleteTable()方法删除表。
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. $javac DeleteTable.java
  2. $java DeleteTable

下面是输出结果:

  1. Table deleted

发表评论

表情:
评论列表 (有 0 条评论,464人围观)

还没有评论,来说两句吧...

相关阅读

    相关 HBase删除数据

    HBase不会定位到需要删除或更新的记录进行操作。由于HBase底层依赖HDFS,对于HBase删除操作来说,HBase无法在查询到之前的数据并进行修改,只能顺序读写,追加记录