返回介绍

HBase 删除表

发布于 2024-06-23 16:37:45 字数 7753 浏览 0 评论 0 收藏 0

使用HBase 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

使用exist命令验证表是否存在。

  1. hbase(main):020:07gt; exists 'emp'
  2. Table emp does not exist
  3. 0 row(s) in 0.0730 seconds

drop_all此命令用于删除与命令中给定的正则表达式匹配的表。其语法如下:

  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步

Admin类。

  1. // Instantiating configuration class
  2. Configuration config = HBaseConfiguration.create();
  3. Connection connection = ConnectionFactory.createConnection(config);
  4. // Instantiating Admin class
  5. Admin admin = null;
  6. admin = connection.getAdmin();

第2步

使用Admin类的disableTable()方法禁用该表。

  1. admin.disableTable(tableName.valueOf("emp"));

第3步

现在,使用Admin类的deleteTable()方法删除表。

  1. admin.deleteTable(tableName.valueOf("emp"));

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

  1. import java.io.IOException;
  2. import org.apache.hadoop.hbase.HBaseConfiguration;
  3. import org.apache.hadoop.hbase.TableName;
  4. import org.apache.hadoop.hbase.client.Connection;
  5. import org.apache.hadoop.hbase.client.ConnectionFactory;
  6. import org.apache.hadoop.hbase.client.Admin;
  7. import org.apache.hadoop.conf.Configuration;
  8. public class DeleteTable {
  9. public static void main(String[] args) throws IOException {
  10. try {
  11. // Instantiating configuration class
  12. Configuration config = HBaseConfiguration.create();
  13. Connection connection = ConnectionFactory.createConnection(config);
  14. // Instantiating Admin class
  15. Admin admin = null;
  16. admin = connection.getAdmin();
  17. TableName tableName = TableName.valueOf("emp");
  18. boolean bool = admin.isTableDisabled(tableName);
  19. if(!bool) {
  20. admin.disableTable(tableName);
  21. System.out.println("table disabled");
  22. }
  23. admin.deleteTable(tableName);
  24. System.out.println("table deleted");
  25. } catch (Exception e) {
  26. System.out.println(e.getMessage());
  27. }
  28. }
  29. }

编译并执行上述程序,如下所示。

  1. $javac DeleteTable.java
  2. $java DeleteTable

以下应该是输出:

  1. Table deleted

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文