HBase學習之路 (三)HBase集羣Shell操作

HBase學習之路 (三)HBase集羣Shell操作

討論QQ:1586558083

目錄

 

正文

回到頂部

進入HBase命令行

在你安裝的隨意臺服務器節點上,執行命令:hbase shell,會進入到你的 hbase shell 客 戶端

複製代碼

[hadoop@hadoop1 ~]$ hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hbase-1.2.6/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

hbase(main):001:0> 

複製代碼

 說明,先看一下提示。其實是不是有一句很重要的話:

HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell

講述了怎麼獲得幫助,怎麼退出客戶端

help 獲取幫助

  help:獲取所有命令提示

  help "dml" :獲取一組命令的提示

  help "put" :獲取一個單獨命令的提示幫助

exit 退出 hbase shell 客戶端

回到頂部

HBase表的操作

 關於表的操作包括(創建create,查看錶列表list。查看錶的詳細信息desc,刪除表drop,清空表truncate,修改表的定義alter)

創建create

可以輸入以下命令進行查看幫助命令

hbase(main):001:0> help 'create'

 View Code

可以看到其中一條提示

hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}

其中t1是表名,f1,f2,f3是列簇的名,如:

hbase(main):002:0> create 'myHbase',{NAME => 'myCard',VERSIONS => 5}
0 row(s) in 3.1270 seconds

=> Hbase::Table - myHbase
hbase(main):003:0> 

創建了一個名爲myHbase的表,表裏面有1個列簇,名爲myCard,保留5個版本信息

查看錶列表list

可以輸入以下命令進行查看幫助命令

複製代碼

hbase(main):003:0> help 'list'
List all tables in hbase. Optional regular expression parameter could
be used to filter the output. Examples:

  hbase> list
  hbase> list 'abc.*'
  hbase> list 'ns:abc.*'
  hbase> list 'ns:.*'
hbase(main):004:0> 

複製代碼

直接輸入list進行查看

複製代碼

hbase(main):004:0> list
TABLE                                                                                                           
myHbase                                                                                                         
1 row(s) in 0.0650 seconds

=> ["myHbase"]
hbase(main):005:0> 

複製代碼

只有一條結果,就是剛剛創建的表myHbase

查看錶的詳細信息desc

一個大括號,就相當於一個列簇。

複製代碼

hbase(main):006:0> desc 'myHbase'
Table myHbase is ENABLED                                                                                        
myHbase                                                                                                         
COLUMN FAMILIES DESCRIPTION                                                                                     
{NAME => 'myCard', BLOOMFILTER => 'ROW', VERSIONS => '5', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', D
ATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true'
, BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                                               
1 row(s) in 0.2160 seconds

hbase(main):007:0> 

複製代碼

修改表的定義alter

添加一個列簇

複製代碼

hbase(main):007:0> alter 'myHbase', NAME => 'myInfo'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.0690 seconds

hbase(main):008:0> desc 'myHbase'
Table myHbase is ENABLED 
myHbase 
COLUMN FAMILIES DESCRIPTION 
{NAME => 'myCard', BLOOMFILTER => 'ROW', VERSIONS => '5', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', D
ATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true'
, BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} 
{NAME => 'myInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', D
ATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true'
, BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} 
2 row(s) in 0.0420 seconds

hbase(main):009:0>

複製代碼

刪除一個列簇

複製代碼

hbase(main):009:0> alter 'myHbase', NAME => 'myCard', METHOD => 'delete'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.1920 seconds

hbase(main):010:0> desc 'myHbase'
Table myHbase is ENABLED                                                                                        
myHbase                                                                                                         
COLUMN FAMILIES DESCRIPTION                                                                                     
{NAME => 'myInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', D
ATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true'
, BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                                               
1 row(s) in 0.0290 seconds

hbase(main):011:0> 

複製代碼

刪除一個列簇也可以執行以下命令

alter 'myHbase', 'delete' => 'myCard'

添加列簇hehe同時刪除列簇myInfo

複製代碼

hbase(main):011:0> alter 'myHbase', {NAME => 'hehe'}, {NAME => 'myInfo', METHOD => 'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 3.8260 seconds

hbase(main):012:0> desc 'myHbase'
Table myHbase is ENABLED                                                                                        
myHbase                                                                                                         
COLUMN FAMILIES DESCRIPTION                                                                                     
{NAME => 'hehe', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DAT
A_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', 
BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                                                 
1 row(s) in 0.0410 seconds

hbase(main):013:0> 

複製代碼

清空表truncate                                                                                    

複製代碼

hbase(main):013:0> truncate 'myHbase'
Truncating 'myHbase' table (it may take a while):
 - Disabling table...
 - Truncating table...
0 row(s) in 3.6760 seconds

hbase(main):014:0> 

複製代碼

刪除表drop

複製代碼

hbase(main):014:0> drop 'myHbase'

ERROR: Table myHbase is enabled. Disable it first.

Here is some help for this command:
Drop the named table. Table must first be disabled:
  hbase> drop 't1'
  hbase> drop 'ns1:t1'


hbase(main):015:0> 

複製代碼

直接刪除表會報錯,根據提示需要先停用表

複製代碼

hbase(main):015:0> disable 'myHbase'
0 row(s) in 2.2620 seconds

hbase(main):016:0> drop 'myHbase'
0 row(s) in 1.2970 seconds

hbase(main):017:0> list
TABLE                                                                                                           
0 row(s) in 0.0110 seconds

=> []
hbase(main):018:0> 

複製代碼

回到頂部

HBase表中數據的操作

關於數據的操作(增put,刪delete,查get + scan,  改==變相的增加)

創建 user 表,包含 info、data 兩個列簇

hbase(main):018:0> create 'user_info',{NAME=>'base_info',VERSIONS=>3 },{NAME=>'extra_info',VERSIONS=>1 } 
0 row(s) in 4.2670 seconds

=> Hbase::Table - user_info
hbase(main):019:0> 

增put

查看幫助,需要傳入表名,rowkey,列簇名、值等

複製代碼

hbase(main):019:0> help 'put'
Put a cell 'value' at specified table/row/column and optionally
timestamp coordinates.  To put a cell value into table 'ns1:t1' or 't1'
at row 'r1' under column 'c1' marked with the time 'ts1', do:

  hbase> put 'ns1:t1', 'r1', 'c1', 'value'
  hbase> put 't1', 'r1', 'c1', 'value'
  hbase> put 't1', 'r1', 'c1', 'value', ts1
  hbase> put 't1', 'r1', 'c1', 'value', {ATTRIBUTES=>{'mykey'=>'myvalue'}}
  hbase> put 't1', 'r1', 'c1', 'value', ts1, {ATTRIBUTES=>{'mykey'=>'myvalue'}}
  hbase> put 't1', 'r1', 'c1', 'value', ts1, {VISIBILITY=>'PRIVATE|SECRET'}

The same commands also can be run on a table reference. Suppose you had a reference
t to table 't1', the corresponding command would be:

  hbase> t.put 'r1', 'c1', 'value', ts1, {ATTRIBUTES=>{'mykey'=>'myvalue'}}
hbase(main):020:0> 

複製代碼

 向 user 表中插入信息,row key 爲 user0001,列簇 base_info 中添加 name 列標示符,值爲 zhangsan1

hbase(main):020:0> put 'user_info', 'user0001', 'base_info:name', 'zhangsan1'
0 row(s) in 0.2900 seconds

hbase(main):021:0> 

此處可以多添加幾條數據

 View Code

查get + scan

獲取 user 表中 row key 爲 user0001 的所有信息

複製代碼

hbase(main):022:0> get 'user_info', 'user0001'
COLUMN                        CELL                                                                              
 base_info:name               timestamp=1522320801670, value=zhangsan1                                          
1 row(s) in 0.1310 seconds

hbase(main):023:0> 

複製代碼

 

獲取user表中row key爲rk0001,info列簇的所有信息

複製代碼

hbase(main):025:0> get 'user_info', 'rk0001', 'base_info'
COLUMN                        CELL                                                                              
 base_info:name               timestamp=1522321247732, value=zhangsan                                           
1 row(s) in 0.0320 seconds

hbase(main):026:0> 

複製代碼

查詢user_info表中的所有信息

複製代碼

hbase(main):026:0> scan 'user_info'
ROW                           COLUMN+CELL                                                                       
 rk0001                       column=base_info:name, timestamp=1522321247732, value=zhangsan                    
 user0001                     column=base_info:name, timestamp=1522320801670, value=zhangsan1                   
2 row(s) in 0.0970 seconds

hbase(main):027:0> 

複製代碼

查詢user_info表中列簇爲base_info的信息

複製代碼

hbase(main):027:0> scan 'user_info', {COLUMNS => 'base_info'}
ROW                           COLUMN+CELL                                                                       
 rk0001                       column=base_info:name, timestamp=1522321247732, value=zhangsan                    
 user0001                     column=base_info:name, timestamp=1522320801670, value=zhangsan1                   
2 row(s) in 0.0620 seconds

hbase(main):028:0> 

複製代碼

刪delete

刪除user_info表row key爲rk0001,列標示符爲base_info:name的數據

複製代碼

hbase(main):028:0> delete 'user_info', 'rk0001', 'base_info:name'
0 row(s) in 0.0780 seconds

hbase(main):029:0> scan 'user_info', {COLUMNS => 'base_info'}
ROW                           COLUMN+CELL                                                                       
 user0001                     column=base_info:name, timestamp=1522320801670, value=zhangsan1                   
1 row(s) in 0.0530 seconds

hbase(main):030:0> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章