返回介绍

HBase 创建表 - HBase 教程

发布于 2025-02-22 13:46:37 字数 2945 浏览 0 评论 0 收藏 0

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

create ‘<table name>’,’<column family>’

示例

下面给出的是一个表名为 emp 的样本模式。它有两个列族:“personal data”和“professional data”。

Row keypersonal dataprofessional data
 

在 HBase shell 创建该表如下所示。

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

它会给下面的输出。

0 row(s) in 1.1300 seconds

=> Hbase::Table - emp

验证创建

可以验证是否已经创建,使用 list 命令如下所示。在这里,可以看到创建的 emp 表。

hbase(main):002:0> list

TABLE 

emp
2 row(s) in 0.0340 seconds

使用 Java API 创建一个表

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

第 1 步:实例化 HBaseAdmin

这个类需要配置对象作为参数,因此初始实例配置类传递此实例给 HBaseAdmin。

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

第 2 步:创建 TableDescriptor

HTableDescriptor 类是属于 org.apache.hadoop.hbase。这个类就像表名和列族的容器一样。

//creating table descriptor
HTableDescriptor table = new HTableDescriptor(toBytes("Table name"));
//creating column family descriptor
HColumnDescriptor family = new HColumnDescriptor(toBytes("column family"));
//adding coloumn family to HTable
table.addFamily(family);

第 3 步:通过执行管理

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

admin.createTable(table);

下面给出的是完整的程序,通过管理员创建一个表。

import java.io.IOException;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.conf.Configuration;

public class CreateTable {

   public static void main(String[] args) throws IOException {

   // Instantiating configuration class
   Configuration con = HBaseConfiguration.create();

   // Instantiating HbaseAdmin class
   HBaseAdmin admin = new HBaseAdmin(con);

   // Instantiating table descriptor class
   HTableDescriptor tableDescriptor = new
   TableDescriptor(TableName.valueOf("emp"));

   // Adding column families to table descriptor
   tableDescriptor.addFamily(new HColumnDescriptor("personal"));
   tableDescriptor.addFamily(new HColumnDescriptor("professional"));

   // Execute the table through admin
   admin.createTable(tableDescriptor);
   System.out.println(" Table created ");
   }
  }

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

$javac CreateTable.java
$java CreateTable

下面列出的是输出:

Table created

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

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

发布评论

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