1.1 連接HBase
使用hbase shell
命令來連接正在運行的Hbase實例,該命令位於HBase安裝包下的bin/目錄。HBase Shell提示符以>符號結束。
$ ./bin/hbase shell
hbase(main):001:0>
1.2 顯示HBase Shell 幫助文檔
輸入help
並按Enter鍵,可以顯示HBase Shell的基本使用信息,和我們接下來會列舉的一些命令類似。需要注意的是,表名,行,列都必須包含在引號內。
1.3 退出HBase Shell
使用quit
命令,退出HBase Shell 並且斷開和集群的連接,但此時HBase仍然在后台運行。
1.4 查看HBase狀態
hbase(main):024:0>status 3 servers, 0 dead,1.0000 average load
1.5 關閉HBase
和bin/start-hbase.sh開啟所有的HBase進程相同,bin/stop-hbase.sh用於關閉所有的HBase進程。
$ ./bin/stop-hbase.sh
stopping hbase....................
$
二、數據定義(DDL)操作
2.1 創建新表
使用create
命令來創建一個新的表。在創建的時候,必須指定表名和列族名。
hbase(main):001:0> create 'test', 'cf'0 row(s) in 0.4170 seconds => Hbase::Table - test
2.2 列舉表信息
使用list
命令:
hbase(main):002:0> list 'test' TABLE test 1 row(s) in 0.0180 seconds => ["test"]
2.3 獲取表描述
使用describe
命令:
hbase(main):003:0> describe 't' DESCRIPTION ENABLED 't', {NAME => 'f', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_ true SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2 147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false ', BLOCKCACHE => 'true'} 1 row(s) in 1.4430 seconds
2.4 刪除表
使用drop
命令實現刪除表的功能:
hbase(main):011:0> drop 'test'0 row(s) in 0.1370 seconds
2.5 檢查表是否存在
hbase(main):021:0>exists 'member' Table member doesexist 0 row(s) in 0.1610seconds
三、數據管理(DML)操作
3.1 向表中插入數據
使用put
命令,將數據插入表中:
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'0 row(s) in 0.0850 seconds hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'0 row(s) in 0.0110 seconds hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'0 row(s) in 0.0100 seconds
可以看到,在本例中,一共插入了三條數據,一次一條。第一次插入到row1行,cf/:列,插入值為value1。所有列在HBase中有一個列族前綴。本例中的cf,后面跟着一個冒號還有一個列限定后綴,本例中是a。
3.2 一次性掃描全表數據
一種獲取HBase數據的方法是掃描,使用scan
命令來掃描表的數據。可以限制限制掃描的范圍,在本例中,獲取的是所有的數據。
hbase(main):006:0> scan 'test' ROW COLUMN+CELL row1 column=cf:a, timestamp=1421762485768, value=value1 row2 column=cf:b, timestamp=1421762491785, value=value2 row3 column=cf:c, timestamp=1421762496210, value=value3 3 row(s) in 0.0230 seconds
3.3 獲取一個行數據
使用get
命令來獲得某一行的數據:
hbase(main):007:0> get 'test', 'row1' COLUMN CELL cf:a timestamp=1421762485768, value=value1 1 row(s) in 0.0350 seconds
3.4 更新一條數據
使用put
命令,本例中,將shiyanlou地址改為E
hbase(main):004:0>put 'company','shiyanlou','info:address' ,'E'0 row(s) in 0.0210seconds hbase(main):005:0>get 'company','shiyanlou','info:address' COLUMN CELL info:address timestamp=1321586571843, value=E 1 row(s) in 0.0180seconds
3.5 禁用一個表
如果你想要刪除一個表或是修改它的設置,或者是其它的情況,都需要首先禁用該表。使用disable
命令禁用表,enable
命令重新啟用表。
hbase(main):008:0> disable 'test'0 row(s) in 1.1820 seconds hbase(main):009:0> enable 'test'0 row(s) in 0.1770 seconds
四、實驗總結
本章介紹了HBase Shell的一些基本的常用命令,主要包括數據定義(DLL)的數據管理(DML)的一些操作命令。只能滿足基本的HBase操作,更進一步的了解,請通過閱讀HBase官方教程。