创建包含HBase服务的集群后,您可以使用HBase Shell连接HBase,并进行读取和写入数据等操作。本文为您介绍如何连接HBase,以及常用的HBase Shell命令。
前提条件
已创建包含HBase服务的数据服务场景(DataServing)或者自定义集群(Custom),详情请参见创建集群。
连接HBase
通过SSH方式登录集群,详情请参见登录集群。
执行以下命令,连接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官网。