使用HBase Shell

创建包含HBase服务的集群后,您可以使用HBase Shell连接HBase,并进行读取和写入数据等操作。本文为您介绍如何连接HBase,以及常用的HBase Shell命令。

前提条件

已创建包含HBase服务的数据服务场景(DataServing)或者自定义集群(Custom),详情请参见创建集群

连接HBase

  1. 通过SSH方式登录集群,详情请参见登录集群

  2. 执行以下命令,连接HBase。

    hbase shell

    成功连接HBase后,系统会打印一些基础使用信息和HBase版本信息,并显示hbase(main):001:0>提示符。

    您可以运行help命令来查看HBase Shell命令列表。

HBase Shell常用命令

创建表

运行create命令可以创建表,您需要同时指定创建的表名和列簇(column family)。例如,通过以下命令可以创建名为table1的表,表中包含一个列簇cf1。

create 'table1', 'cf1'

写入数据

运行put命令向表中写入数据,您需要同时指定表名、行、列以及写入的值。HBase的列由列簇和列名(qualifier)两部分组成,例如下面示例中的列cf1:q1由列簇cf1和列名q1两部分组成。

put 'table1', 'r1', 'cf1:q1', 'v1'
put 'table1', 'r1', 'cf1:q2', 'v2'
put 'table1', 'r2', 'cf1:q1', 'v3'

扫描表

运行scan命令获取所有符合条件的数据。您可以根据自己的需求为scan命令增加限制条件。例如,通过以下命令获取表cf1:q1列的所有数据。

scan 'table1', {COLUMNS => 'cf1:q1'}

返回信息如下。

ROW                                                COLUMN+CELL
 r1                                                column=cf1:q1, timestamp=2022-09-14T16:06:34.339, value=v1
 r2                                                column=cf1:q1, timestamp=2022-09-14T16:06:36.615, value=v3
2 row(s)

获取数据

运行get命令获取单个行(row)或单元格(cell)的数据。您可以根据需求为get命令增加限制条件。例如,通过以下命令获取表的r1行,cf1:q1列的值。

get 'table1', 'r1', {COLUMNS => 'cf1:q1'}

返回信息如下。

COLUMN                                             CELL
 cf1:q1                                            timestamp=2022-09-14T16:06:34.339, value=v1
1 row(s)

删除数据

  • 删除单个数据

    运行delete命令删除单个单元格的值,即表的某一行的某一列的值。例如,通过以下命令可以删除表的r2行,cf1:q1列的值。

    delete 'table1', 'r2', 'cf1:q1'
  • 删除多个数据

    运行deleteall命令删除表的某一行符合条件的所有列的值。例如,通过以下命令可以删除表的r1行的所有数据,您可以在命令中增加列簇名来限制删除的范围。

    deleteall 'table1', 'r1'

禁用表

运行disable命令禁用表,如果需要删除表或更改某些设置等,则先禁用表。例如,通过以下命令可以禁用名为table1的表。

disable 'table1'

启用表

运行enable命令启用表。例如,通过以下命令可以启用名为table1的表。

enable 'table1'

删除表

运行drop命令删除表,删除表之前必须先禁用表。例如,通过以下命令可以删除名为table1的表。

drop 'table1'

相关文档

您可以查看Apache HBase Shell官方文档了解更多信息,详情请参见Apache HBase官网