返回介绍

HBase 创建表

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

使用HBase Shell创建表

您可以使用create命令创建表,在这里您必须指定表名和列族名。在HBase Shell中创建表的语法如下所示。

  1. create '<table name>','<column family>'

下面给出的是一个名为emp的表的示例架构。它有两个列族:personal dataprofessional data

Row keypersonal dataprofessional data

您可以在HBase Shell中创建此表,如下所示。

  1. hbase(main):002:0> create 'emp', 'personal data', 'professional data'

它将为您提供以下输出。

  1. 0 row(s) in 1.1300 seconds
  2. => Hbase::Table - emp

验证
您可以验证是否使用list命令创建了该表,如下所示。在这里,您可以观察创建的emp表。

  1. hbase(main):002:0> list
  2. TABLE
  3. emp
  4. 2 row(s) in 0.0340 seconds

使用Java API创建表

您可以使用HBaseAdmin类的createTable()方法在HBase中创建表。此类属于org.apache.hadoop.hbase.client软件包。下面给出了使用Java API在HBase中创建表的步骤。

步骤 1:实例化HBaseAdmin

此类需要使用Configuration对象作为参数,因此首先实例化Configuration类并将此实例传递给HBaseAdmin。

  1. Configuration conf = HBaseConfiguration.create();
  2. HBaseAdmin admin = new HBaseAdmin(conf);

步骤 2:建立TableDescriptor

HTableDescriptor是一个属于org.apache.hadoop.hbase类的类。此类类似于表名和列族的容器。

  1. //creating table descriptor
  2. HTableDescriptor table = new HTableDescriptor(toBytes("Table name"));
  3. //creating column family descriptor
  4. HColumnDescriptor family = new HColumnDescriptor(toBytes("column family"));
  5. //adding coloumn family to HTable
  6. table.addFamily(family);

步骤 3:通过管理员执行

使用HBaseAdmin类的createTable()方法,可以在Admin模式下执行创建的表。

  1. admin.createTable(table);

下面给出的是通过admin创建表的完整程序。

  1. import java.io.IOException;
  2. import org.apache.hadoop.hbase.HBaseConfiguration;
  3. import org.apache.hadoop.hbase.HColumnDescriptor;
  4. import org.apache.hadoop.hbase.HTableDescriptor;
  5. import org.apache.hadoop.hbase.client.Connection;
  6. import org.apache.hadoop.hbase.client.ConnectionFactory;
  7. import org.apache.hadoop.hbase.client.Admin;
  8. import org.apache.hadoop.hbase.TableName;
  9. import org.apache.hadoop.conf.Configuration;
  10. @SuppressWarnings("deprecation")
  11. public class CreateTable {
  12. public static void main(String[] args) throws IOException {
  13. try {
  14. // Instantiating configuration class
  15. Configuration config = HBaseConfiguration.create();
  16. Connection connection = ConnectionFactory.createConnection(config);
  17. // Instantiating HbaseAdmin class
  18. Admin admin = null;
  19. admin = connection.getAdmin();
  20. // Instantiating table descriptor class
  21. HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("empfromjava"));
  22. // Adding column families to table descriptor
  23. tableDescriptor.addFamily(new HColumnDescriptor("personal"));
  24. tableDescriptor.addFamily(new HColumnDescriptor("professional"));
  25. // Execute the table through admin
  26. admin.createTable(tableDescriptor);
  27. System.out.println(" Table created ");
  28. } catch (Exception e) {
  29. System.out.println(e.getMessage());
  30. }
  31. }
  32. }

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

  1. $javac CreateTable.java
  2. $java CreateTable

以下应该是输出:

  1. Table created

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

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

发布评论

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