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