創建包含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官網。