启动hbase:start-hbase.sh

停止hbase:stop-hbase.sh

 

 

进入hbase命令行端口:hbase shell

查看帮助信息:help

查看服务器状态:status

查看版本信息:version

查看当前用户:whoami

查看表相关命令的帮助信息:table_help

 

创建表

常用语法:create  \'[namespacename:]tablename\’ [ ,\’columnfamilyname1\’ [  ,\’columnfamilyname2, ….]]

详细语法使用help -create 查看create语句

hbase(main):006:0> create \'test\',\'fam1\',\'fam2\' 
0 row(s) in 8.3530 seconds 
  
=> Hbase::Table – test

 

使用list命令列出表名:

常用语法:list   \'[namespacename:]tablename]

详细语法可以使用help \’list\’ 查看,list 后面可以跟正则表达式,列出符合表达式的表名

hbase(main):011:0> list \'test\' –列出名为test的表名 
TABLE                                                                                                                                                              
test                                                                                                                                                               
1 row(s) in 0.0110 seconds 
  
=> ["test"] 
hbase(main):012:0> list \'tes.*\'—列出以名称tes开头的表名 
TABLE                                                                                                                                                              
test                                                                                                                                                               
test:testtable                                                                                                                                                       
2 row(s) in 0.0150 seconds 
  
=> ["test","test:testtable"] 
hbase(main):013:0> list \'default:.*\' –列出default命名空间下的表名 
TABLE                                                                                                                                                               
ambarismoketest                                                                                                                                                    
test                                                                                                                                                               
2 row(s) in 0.0150 seconds 
  
=> ["ambarismoketest","test"] 
hbase(main):014:0> list \'test:.*\' –列出test这个命名空间下的表名 
TABLE                                                                                                                                                              
test:testtable                                                                                                                                                       
1 row(s) in 0.0140 seconds 
  
=> ["test:testtable"]

 

列出数据库名:list_namespace

 

hbase(main):002:0> list_namespace
NAMESPACE                                                        
default                                                          
hbase                                                            
2 row(s) in 0.5620 seconds

 

使用desc命令查看指定表的具体信息(desc等同于describe)

语法:desc \'[namespacename:]tablename\’

          describe \'[namespacename:]tablename\’

详细语法使用help  \’describe\’查看

hbase(main):016:0> desc \'test\'  查看test这张表的信息 
Table test is ENABLED                                                                                                                                                
test                                                                                                                                                               
COLUMN FAMILIES DESCRIPTION                                                                                                                                        
{NAME => \'fam1\', BLOOMFILTER =>\'ROW\', VERSIONS => \'1\', IN_MEMORY => \'false\', KEEP_DELETED_CELLS =>\'FALSE\', DATA_BLOCK_ENCODING => \'NONE\', TTL => \'FOREVER\', COMPRE 
SSION => \'NONE\', MIN_VERSIONS => \'0\',BLOCKCACHE => \'true\', BLOCKSIZE => \'65536\', REPLICATION_SCOPE =>\'0\'}                                                         
{NAME => \'fam2\', BLOOMFILTER =>\'ROW\', VERSIONS => \'1\', IN_MEMORY => \'false\', KEEP_DELETED_CELLS =>\'FALSE\', DATA_BLOCK_ENCODING => \'NONE\', TTL => \'FOREVER\', COMPRE 
SSION => \'NONE\', MIN_VERSIONS => \'0\',BLOCKCACHE => \'true\', BLOCKSIZE => \'65536\', REPLICATION_SCOPE =>\'0\'}                                                         
2 row(s) in 0.1710 seconds 
  
hbase(main):017:0> desc \'test:testtable\'查看test命名空间下testtable这张表的信息 
Table test:testtable is ENABLED                                                                                                                                     
test:testtable                                                                                                                                                      
COLUMN FAMILIES DESCRIPTION                                                                                                                                         
{NAME => \'colfam1\', BLOOMFILTER =>\'ROW\', VERSIONS => \'1\', IN_MEMORY => \'false\', KEEP_DELETED_CELLS =>\'FALSE\', DATA_BLOCK_ENCODING => \'NONE\', TTL => \'FOREVER\', COM 
PRESSION => \'NONE\', MIN_VERSIONS =>\'0\', BLOCKCACHE => \'true\', BLOCKSIZE => \'65536\', REPLICATION_SCOPE =>\'0\'}                                                      
{NAME => \'colfam2\', BLOOMFILTER =>\'ROW\', VERSIONS => \'1\', IN_MEMORY => \'false\', KEEP_DELETED_CELLS =>\'FALSE\', DATA_BLOCK_ENCODING => \'NONE\', TTL => \'FOREVER\', COM 
PRESSION => \'NONE\', MIN_VERSIONS =>\'0\', BLOCKCACHE => \'true\', BLOCKSIZE => \'65536\', REPLICATION_SCOPE =>\'0\'}                                                       
{NAME => \'colfam3\', BLOOMFILTER =>\'ROW\', VERSIONS => \'1\', IN_MEMORY => \'false\', KEEP_DELETED_CELLS =>\'FALSE\', DATA_BLOCK_ENCODING => \'NONE\', TTL => \'FOREVER\', COM 
PRESSION => \'NONE\', MIN_VERSIONS =>\'0\', BLOCKCACHE => \'true\', BLOCKSIZE => \'65536\', REPLICATION_SCOPE =>\'0\'}                                                      
3 row(s) in 0.0290 seconds

 

使用put插入数据

常用语法:put \'[namespacename:]tablename\’ , \’rowkey\’ , \’columnfamilyname[:column]\’ , \’value\’

详细语法使用help \’put\’查看

hbase(main):002:0> put\'test\',\'row2\',\'fam1:a\',\'value\' 
0 row(s) in 0.3760 seconds 
hbase(main):003:0> put \'test\',\'row1\',\'fam1:a\',\'value\' 
0 row(s) in 0.3760 seconds 
hbase(main):004:0> put \'test\',\'row1\',\'fam2:a\',\'value\' 
0 row(s) in 0.3760 seconds 
hbase(main):005:0> put\'test\',\'row2\',\'fam2:a\',\'value\' 
0 row(s) in 0.3760 seconds

 

使用scan查看全表数据

常用语法:scan \'[namespacename:]tablename\’

详细语法使用help \’scan\’查看

hbase(main):002:0> scan \'test\' 
ROW                                       COLUMN+CELL                                                                                                             
 row1                                     column=fam1:a, timestamp=1504767451331, value=value                                                                      
 row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                      
 row2                                     column=fam1:a, timestamp=1504767600686, value=value                                                                      
 row2                                     column=fam2:a, timestamp=1504767715014, value=value                                                                      
2 row(s) in 0.1120 seconds

 

查看指定列的数据:

hbase(main):004:0> scan \'test\',{COLUMNS=> \'fam1:a\'} 
ROW                                       COLUMN+CELL                                                                                                              
 row1                                     column=fam1:a, timestamp=1504767451331, value=value                                                                      
 row2                                      column=fam1:a,timestamp=1504767600686, value=value                                                                      
2 row(s) in 0.2390 seconds 
  
hbase(main):021:0> get \'test\',\'row1\' 
COLUMN                                     CELL                                                                                                                    
 fam1:a                                   timestamp=1504768075731, value=\x00\x00\x00\x00\x00\x00\x00\x02                                                          
 fam2:a                                   timestamp=1504767471977, value=value                                                                                     
2 row(s) in 0.1110 seconds

查看多个多个版本数据:get \’table1\’, \’rowkey007\’,{COLUMN=>\’f1\’,VERSIONS=>2}

 

修改表的版本version数量:
alter \’table1\’,{NAME=>\’f1\’,VERSIONS=>5}

 

使用get查询数据:

语法:get  \'[namespacename:]tablename\’ , \’rowkey\’ [, \’columnfamliyname[:column]\’]

详细语法使用help \’get\’查看

hbase(main):024:0> get\'test\',\'row1\',\'fam1\' 
COLUMN                                     CELL                                                                                                                    
 fam1:a                                   timestamp=1504768075731, value=\x00\x00\x00\x00\x00\x00\x00\x02                                                          
1 row(s) in 0.0690 seconds 
hbase(main):026:0> get \'test\',\'row1\',\'fam1:a\' 
COLUMN                                     CELL                                                                                                                    
 fam1:a                                   timestamp=1504768075731, value=\x00\x00\x00\x00\x00\x00\x00\x02                                                          
1 row(s) in 0.0430 seconds

 

使用delete删除数据

常用语法:delete \'[namespacename:]tablename\’ , \’rowkey\’ , \’columnfamliyname:column\’

当表中存在只制定了columnfamily没有具体制定column的数据时,delete可以这么用

delete \'[namespacename:]tablename\’ , \’rowkey\’ , \’columnfamliyname\’,不存在这样的数据,使用这样的语句不会删除数据。

更详细的语法使用help \’delete\’查看

hbase(main):008:0> delete\'test\',\'row1\',\'fam1:a\' 
0 row(s) in 0.3370 seconds 
  
hbase(main):009:0> scan \'test\' 
ROW                                       COLUMN+CELL                                                                                                             
 row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                      
 row2                                     column=fam1:a, timestamp=1504767600686, value=value                                                                      
 row2                                     column=fam2:a, timestamp=1504767715014, value=value                                                                      
2 row(s) in 0.0850 seconds

 

使用incr增加数据(默认使用counter实现递增)

常用语法:incr \'[namespacename:]tablename\’ , \’rowkey\’ , \’columnfamilyname:column\’

更详细的语法使用help \’incr\’查看

hbase(main):012:0> incr\'test\',\'row1\',\'fam1:a\' 
COUNTER VALUE = 1
0 row(s) in 1.1700 seconds 
  
hbase(main):013:0> scan \'test\' 
ROW                                       COLUMN+CELL                                                                                                             
 row1                                      column=fam1:a,timestamp=1504768054892, value=\x00\x00\x00\x00\x00\x00\x00\x01                                           
 row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                       
 row2                                     column=fam1:a, timestamp=1504767600686, value=value                                                                      
 row2                                      column=fam2:a, timestamp=1504767715014,value=value                                                                      
2 row(s) in 0.0410 seconds 
  
hbase(main):014:0> incr\'test\',\'row1\',\'fam1:a\' 
COUNTER VALUE = 2
0 row(s) in 0.0480 seconds 
  
hbase(main):015:0> scan \'test\' 
ROW                                       COLUMN+CELL                                                                                                             
 row1                                     column=fam1:a, timestamp=1504768075731,value=\x00\x00\x00\x00\x00\x00\x00\x02                                           
 row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                      
 row2                                     column=fam1:a, timestamp=1504767600686, value=value                                                                      
 row2                                     column=fam2:a, timestamp=1504767715014, value=value                                                                      
2 row(s) in 0.0770 seconds

 

使用get_counter查看当前的counter值:

hbase(main):027:0> get_counter\'test\',\'row1\',\'fam1:a\' 
COUNTER VALUE = 2

 

使用put更新数据:

hbase(main):029:0> scan \'test\' 
ROW                                        COLUMN+CELL                                                                                                             
 row1                                     column=fam1:a, timestamp=1504768075731,value=\x00\x00\x00\x00\x00\x00\x00\x02                                           
 row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                      
 row2                                     column=fam1:a, timestamp=1504767600686, value=value                                                                      
 row2                                     column=fam2:a, timestamp=1504767715014, value=value                                                                      
2 row(s) in 0.0270 seconds 
  
hbase(main):030:0> put\'test\',\'row1\',\'fam1:a\',\'newvalue\' 
0 row(s) in 0.0250 seconds 
  
hbase(main):031:0> scan \'test\' 
ROW                                        COLUMN+CELL                                                                                                             
 row1                                     column=fam1:a, timestamp=1504768397480, value=newvalue                                                                    
 row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                      
 row2                                     column=fam1:a, timestamp=1504767600686, value=value                                                                      
 row2                                     column=fam2:a, timestamp=1504767715014, value=value                                                                      
2 row(s) in 0.0760 seconds

 

使用is_enabled/is_disabled查看表是否被启用/禁用

hbase(main):032:0> is_enable \'test\' 
NoMethodError: undefined method `is_enable\'for #<Object:0x15d114ce> 
  
hbase(main):033:0> is_enabled \'test\' 
true                                                                                                                                                               
0 row(s) in 0.1180 seconds 
  
hbase(main):034:0> is_disabled \'test\' 
false                                                                                                                                                              
0 row(s) in 0.0190 seconds

 

使用disable禁用表

hbase(main):001:0> disable \'test\' 
0 row(s) in 4.7170 seconds 
  
hbase(main):002:0> is_disabled \'test\' 
true                                                                                                                                                               
0 row(s) in 0.0210 seconds

 

使用enbale启用表

hbase(main):003:0> enable \'test\' 
0 row(s) in 2.2910 seconds 
  
hbase(main):004:0> is_enabled \'test\' 
true                                                                                                                                                               
0 row(s) in 0.0180 seconds

 

删除fam1这个columnfamily:

hbase(main):007:0> alter\'test\',{NAME=>\'fam1\',METHOD=>\'delete\'} 
Updating all regions with the new schema...
1/1 regions updated. 
Done.
0 row(s) in 2.1980 seconds 
  
hbase(main):008:0> desc \'test\' 
Table test is ENABLED                                                                                                                                               
test                                                                                                                                                               
COLUMN FAMILIES DESCRIPTION                                                                                                                                        
{NAME => \'fam2\', BLOOMFILTER => \'ROW\',VERSIONS => \'1\', IN_MEMORY => \'false\', KEEP_DELETED_CELLS => \'FALSE\',DATA_BLOCK_ENCODING => \'NONE\', TTL => \'FOREVER\', COMPRE 
SSION => \'NONE\', MIN_VERSIONS => \'0\',BLOCKCACHE => \'true\', BLOCKSIZE => \'65536\', REPLICATION_SCOPE =>\'0\'}                                                          
1 row(s) in 0.0350 seconds

 

清空表数据:

hbase(main):009:0> truncate \'test\' 
Truncating \'test\' table (it may take awhile): 
 -Disabling table... 
 -Truncating table... 
0 row(s) in 3.6540 seconds 
  
hbase(main):010:0> scan \'test\' 
ROW                                       COLUMN+CELL                                                                                                             
0 row(s) in 0.0460 seconds

 

删除表(必须先disable表才能drop表):

hbase(main):011:0> disable \'test\' 
0 row(s) in 2.2680 seconds 
  
hbase(main):012:0> drop \'test\' 
0 row(s) in 1.2680 seconds 
  
hbase(main):014:0> list \'test\' 
TABLE                                                                                                                                                              
0 row(s) in 0.0110 seconds 
  
=> []

 

参考博客:

https://blog.csdn.net/weixin_34234721/article/details/89806302

版权声明:本文为xumaomao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xumaomao/articles/11790709.html