HBase 创建表 Java API 和 Shell 示例
⚡ 智能摘要
HBase 将数据存储在表中,您可以通过两种方式创建和管理这些表:通过…… Java 使用 HTable 的 APIDescript或者使用 HBaseAdmin,或者直接在 HBase shell 中使用 create 命令。

如何使用 Java API
在 HBase 中,表可以通过两种方式创建:通过…… Java API 和 HBase shell。本节内容涵盖以下内容: Java API 允许应用程序创建表并以编程方式加载数据,作为更大作业的一部分。
通过 Java API,我们可以在 HBase 中创建表,也可以使用以下方法将数据加载到表中 Java 编码。这里我们设置了两项内容:
- 通过以下方式与 HBase 建立连接 Java API。
- 运用 Eclipse HPMC胶囊 Java 编码、调试和测试。
以下是通过以下方式在 HBase 中创建表的步骤 Java API。
步骤 1)创建 Java 项目 Eclipse
在此步骤中,我们将创建一个 Java 项目 Eclipse 用于名为“HbaseConnection”的 HBase 连接。
新 Java 下面的项目对话框显示了正在设置的“HbaseConnection”项目:
如果我们观察上面的截图:
- 请在此框中输入项目名称。在本例中,项目名称为“HbaseConnection”。
- 选中此复选框可设置默认保存位置。此处路径为 /home/hduser/work/HbaseConnection。
- 勾选该方框 Java 这里的环境。在这种情况下。 JavaSE-1.7 是 Java 版。
- 选择文件保存位置。在本例中,我们选择了第二个选项,“为源文件和类文件创建单独的文件夹”。
- 单击“完成”按钮,即可在 [此处应填写项目路径] 创建“HbaseConnection”项目。 Eclipse 并打开 Eclipse 主页。
步骤 2)配置构建路径 Eclipse
点击 Eclipse 在首页,按照以下步骤打开构建路径配置:
Right click on project -> Select Build Path -> Configure build path
下图显示了用于打开构建路径配置的右键菜单:
从上面的截图中可以看出:
- 右键单击项目。
- 选择构建路径。
- 选择“配置构建路径”。
点击“配置构建路径”后,会打开另一个窗口,如下图所示。“库”选项卡用于将 HBase 和 Hadoop JAR 文件添加到项目中:
在此步骤中,我们将相关的 HBase JAR 文件添加到…… Java 项目如图所示。
- 需要添加的重要 JAR 文件:hbase-0.94.8.jar 和 hadoop-core-1.1.2.jar。
- 转到“图书馆”选项卡。
- 点击“添加外部 JAR 文件”选项。
- 选择所需的关键 JAR 文件。
- 按下“完成”按钮,将这些文件添加到“src”目录中。 Java 项目隶属于图书馆。
添加 JAR 文件后,它们会出现在项目“src”目录下,如下所示:
该项目下的所有 JAR 文件现在都已准备好与 Hadoop 生态系统一起使用。
步骤3)建立HBase连接
在此步骤中,使用 HBaseConnection.java 建立 HBase 连接。 Java 编码。
点击 Eclipse 顶部菜单,执行 Java 程序如下所示:运行 -> 以其他身份运行 -> Java 应用程序。以下菜单显示了正在启动的程序:
- 选择“运行”。
- 选择“运行方式” Java 应用。
- 这段代码通过以下方式建立与 HBase 的连接 Java API。
- 运行这段代码后,HBase 中会创建一个名为“guru99”的表,其中包含两个列族,分别名为“education”和“projects”。目前,HBase 中仅创建了一个空的模式。
以下代码片段重点介绍了 HTable。Descript或者,以及构建表架构的 addFamily 调用:
从上面的截图中可以看出,我们正在执行以下功能:
- 使用 HTableDescript或者,我们可以在 HBase 中创建“guru99”表。
- 使用 addFamily 方法,我们将“education”和“projects”作为列族添加到“guru99”表中。
以下代码将建立与 HBase 的连接,并创建包含两个列族的“guru99”表。请将此代码放在 HBaseConnection.java 文件中:
// Place this code inside Hbase connection import java.io.IOException; import org.apache.hadoop.conf.Configuration; 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; public class HBaseConnection { public static void main(String[] args) throws IOException { HBaseConfigurationhc = new HBaseConfiguration(new Configuration()); HTableDescriptorht = new HTableDescriptor("guru99"); ht.addFamily( new HColumnDescriptor("education")); ht.addFamily( new HColumnDescriptor("projects")); System.out.println( "connecting" ); HBaseAdminhba = new HBaseAdmin( hc ); System.out.println( "Creating Table" ); hba.createTable( ht ); System.out.println("Done......"); } }
这是运行 HBaseConnection.java 之前必须添加到其中的代码。 Java 程序。
运行此程序后,它将与 HBase 建立连接,进而创建一个带有列名的表。
- 表名为“guru99”。
- 列族包括“教育”和“项目”。
步骤4)检查HBase中创建的表
我们可以使用 HBase shell 模式和“list”命令来检查 HBase 中“guru99”表是否创建了两个列族。“list”命令会列出 HBase 中所有已创建的表的信息。
在 HBase shell 中运行 list 命令可以确认新表的存在,如下所示:
- Code 在 HBase shell 中执行“list”命令进行检查。
- 如果我们运行“list”命令,它会显示在HBase中创建的表。在本例中,我们可以看到创建了“guru99”表。
HBase 使用 Shell 创建表
除了 Java 使用 API,您可以直接从 HBase shell 创建表,这是设置表进行快速测试的最快方法。使用 shell 在 HBase 中创建表的语法如下:
Syntax: create <tablename>, <columnfamilyname>
例子:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
以上示例说明了如何在 HBase 中创建符合各列族规范的指定名称的表。此外,我们还可以向其中传递一些表级属性。
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
这里,{NAME=>'Edu', VERSIONS=>…} 代码块设置了一个名为“Edu”的列族及其保留的单元格版本数。较大的数字仅用于示例;实际上,VERSIONS 的值通常较小,例如 3 或 5。
列出、描述和验证 HBase 表
在 HBase 中创建表只是处理表的第一步。一旦创建了“guru99”表,就可以使用一些通用命令来检查表并确认其状态,然后再进行读取、写入或修改数据的操作。所有这些命令都可以从以下位置运行: HBase 外壳.
list 命令会返回 HBase 中的所有用户表:
hbase> list
describe 命令显示表的结构,包括列族以及当前是否启用:
hbase> describe 'guru99'
exists 命令检查表是否存在,而 is_enabled 命令报告表是否允许写入:
hbase> exists 'guru99' hbase> is_enabled 'guru99'
这些只读检查可以随时安全运行。它们是确认表已正确创建并在加载数据前检查其列族的最快捷方法。
修改 HBase 表
HBase 表的架构在创建后并非固定不变。`alter` 命令会在不重新创建表的情况下更改表的列族和表级属性。根据您的 HBase 版本,您可能需要先禁用该表,然后再运行 `alter` 命令并重新启用它。
要向“guru99”表中添加新的列族:
hbase> alter 'guru99', {NAME => 'contact'}
设置列族保留的版本数:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
要从表中删除列族:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
您还可以更改表范围属性。例如,将表标记为只读,或将最大区域文件大小设置为 128 MB:
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
因为 alter 会重写模式,所以在生产表上仔细规划更改,然后使用 describe 确认结果。
禁用、启用和删除 HBase 表
要删除表或进行某些更改,HBase 要求您先禁用该表。禁用后,表将脱机,任何客户端都无法对其进行读取或写入操作,从而确保结构性更改的安全性。
禁用一个表,并使用 is_disabled 检查其状态:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
重新启用该表以恢复读写操作:
hbase> enable 'guru99'
必须先禁用表格才能删除它。删除ping 这会永久删除表格及其所有数据,因此请谨慎使用:
hbase> disable 'guru99' hbase> drop 'guru99'
要一次性删除多个表,`drop_all` 会删除名称与正则表达式匹配的所有表。`create`、`alter`、`disable`、`enable` 和 `drop` 共同涵盖了表的完整生命周期。 处理数据 在 HBase 表中。






