HBASE shell 命令

hbase shell 命令进入 hbase 提供的 shell 工具,help 命令可以查看帮助。

1、查看有哪些表

hbase(main):003:0> list
TABLE                                                                                                               
t1                                                                                                                  
t2                                                                                                                  
2 row(s) in 0.0270 seconds
=> ["t1", "t2"]

2、创建表

// 表名 stu、列族 info
hbase(main):004:0> create 'stu','info'
0 row(s) in 2.9680 seconds
=> Hbase::Table - stu

3、插入数据

hbase(main):005:0> put 'stu','1001', 'info:sex','male'
0 row(s) in 0.2210 seconds

hbase(main):006:0> put 'stu','1001', 'info:age','18'
0 row(s) in 0.0160 seconds

hbase(main):007:0> put 'stu','1002', 'info:name','rose'
0 row(s) in 0.0140 seconds

hbase(main):008:0> put 'stu','1002', 'info:sex','female'
0 row(s) in 0.0290 seconds

hbase(main):010:0> put 'stu','1002', 'info:age','20'
0 row(s) in 0.0330 seconds

4、扫描全表

hbase(main):011:0> scan 'stu'
ROW                            COLUMN+CELL                                                                          
 1001                          column=info:age, timestamp=1629019958591, value=18                                   
 1001                          column=info:sex, timestamp=1629019940108, value=male                                 
 1002                          column=info:age, timestamp=1629020030843, value=20                                   
 1002                          column=info:name, timestamp=1629019986506, value=rose                                
 1002                          column=info:sex, timestamp=1629020009789, value=female                      
2 row(s) in 0.1030 seconds

5、查看表结构

hbase(main):012:0> describe 'stu'
Table stu is ENABLED                                                                                                
stu                                                                                                                 
COLUMN FAMILIES DESCRIPTION                                                                                         
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BL
OCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZ
E => '65536', REPLICATION_SCOPE => '0'}                                                                             
1 row(s) in 0.1080 seconds

6、更新表数据

hbase(main):013:0> put 'stu', '1001','info:name','lila'
0 row(s) in 0.0270 seconds

hbase(main):014:0> put 'stu', '1001','info:age','19'
0 row(s) in 0.0150 seconds

hbase(main):015:0> scan 'stu'
ROW                                COLUMN+CELL                                                                                       
 1001                              column=info:age, timestamp=1629020165125, value=19                                                
 1001                              column=info:name, timestamp=1629020154142, value=lila                                             
 1001                              column=info:sex, timestamp=1629019940108, value=male                                              
 1002                              column=info:age, timestamp=1629020030843, value=20                                                
 1002                              column=info:name, timestamp=1629019986506, value=rose                                             
 1002                              column=info:sex, timestamp=1629020009789, value=female\x0A                                        
2 row(s) in 0.1020 seconds

7、查看指定行或列

hbase(main):016:0> get 'stu','1001'
COLUMN                         CELL                                                                                 
 info:age                      timestamp=1629020165125, value=19                                                    
 info:name                     timestamp=1629020154142, value=lila                                                  
 info:sex                      timestamp=1629019940108, value=male                                                  
3 row(s) in 0.1370 seconds

hbase(main):017:0> get 'stu','1001','info:name'
COLUMN                         CELL                                                                                 
 info:name                     timestamp=1629020154142, value=lila                                                  
1 row(s) in 0.0330 seconds

8、统计行数

hbase(main):018:0> count 'stu'
2 row(s) in 0.0710 seconds

=> 2

9、删除数据

// 删除某一行
hbase(main):020:0> deleteall 'stu','1001'
0 row(s) in 0.0460 seconds

hbase(main):021:0> scan 'stu'
ROW                                COLUMN+CELL                                                                                       
 1002                              column=info:age, timestamp=1629020030843, value=20                                                
 1002                              column=info:name, timestamp=1629019986506, value=rose                                             
 1002                              column=info:sex, timestamp=1629020009789, value=female\x0A                                        
1 row(s) in 0.0480 seconds

// 删除某一列
hbase(main):022:0> delete 'stu','1002','info:sex'
0 row(s) in 0.0430 seconds

hbase(main):023:0> scan 'stu'
ROW                                COLUMN+CELL                                                                                       
 1002                              column=info:age, timestamp=1629020030843, value=20                                                
 1002                              column=info:name, timestamp=1629019986506, value=rose                                             
1 row(s) in 0.0380 seconds

10、其他命令

// 清空表数据,需要先 disable 表
truncate 'stu'

// 删除表,需要先 disable 表
disable 'stu'
drop 'stu'

// 表更表信息,将 info 列族中的数据存放 3 个版本
hbase(main):024:0> alter 'stu', {NAME=>'info',VERSION=>3}
Unknown argument ignored for column family info: 1.8.7
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 3.2270 seconds

hbase(main):025:0> get 'stu','1002',{COLUMN=>'info:name',VERSION=>3}
COLUMN                             CELL                                                                                              
 info:name                         timestamp=1629019986506, value=rose                                                               
1 row(s) in 0.0470 seconds