大数据学习-HBase Shell命令

HBase Shell命令


进入HBase Shell:

[root@master ~]# hbase shell

一、DDL操作

DDL:Data Definition Language,数据定义语言

HBase Shell常用DDL指令
HBase Shell 命令功能描述
list列出HBase中的所有表
create创建一张表
describe列出表的详细信息
alter修改表的列族
disable禁用表,使表无效
enable启用表,使表有效
drop删除一张表
exists判断表是否存在

1、list:查看HBase中的所有表

格式:

list

  hbase(main):001:0> list
  TABLE                                                                                                                    
  0 row(s) in 0.1790 seconds

  => []

2、create:创建表

格式:

create ‘表名’,{NAME => ‘列族名1’,VERSIONS => <VERSIONS>},{NAME => ‘列族名2’…},…

或者

create ‘表名’,‘列族名1’,‘列族名2’,…

hbase(main):002:0> create 'lol',{NAME => 'personalInfo', VERSIONS => 1},{NAME => 'recordInfo', VERSIONS => 1},{NAME => 'assetsInfo', VERSIONS => 1}

#或者用以下更简洁的指令
hbase(main):002:0> create 'lol','personalInfo','recordInfo','assetsInfo'

3、describe:查看表的详细信息

格式:

describe ‘表名’

hbase(main):012:0> describe 'lol'
Table lol is ENABLED                                                                                
lol                                                                                                 
COLUMN FAMILIES DESCRIPTION                                                                           
{NAME => 'assetsInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS
 => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '
0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                             
{NAME => 'personalInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CEL
LS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS =>
 '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                           
{NAME => 'recordInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS
 => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '
0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                             
3 row(s) in 0.1440 seconds

列族各参数含义在此不再一一列举

4、alter:修改表的列族信息

格式:

alter ‘表名’,{NAME => ‘列族名’,VERSIONS => <VERSIONS>}

其中,列族名称参数NAME必须提供,如果已存在,则修改;否则会增加一个列族

hbase(main):013:0> alter 'lol',{NAME => 'recordInfo',TTL => '15552000'}
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 3.3160 seconds

(TTL(Time to Live)用于限定数据的超时时间)

5、disable:禁用表

格式:

disable ‘表名’

hbase(main):014:0> disable 'lol'
0 row(s) in 2.3560 seconds

查看表是否被禁用

hbase(main):017:0> is_disabled 'lol'
true                                                                                                  
0 row(s) in 0.0250 seconds

6、enable:启用表

格式:

enable ‘表名’

hbase(main):018:0> enable 'lol'
0 row(s) in 1.3440 seconds

查看表是否被禁用

hbase(main):019:0> is_disabled 'lol'
false                                                                                                 
0 row(s) in 0.0340 seconds

7、drop:删除一张表

格式:

drop ‘表名’

删除表的步骤是:

1)使用disable禁用表

2)使用drop将该禁用表删除

8、exists:查看表是否存在

格式:

exists ‘表名’

hbase(main):021:0> exists 'lol'
Table lol does exist                                                                                  
0 row(s) in 0.0280 seconds

二、DML操作

DML:data manipulation language,数据操纵语言

HBase Shell常用DML命令
HBase Shell 命令功能描述
put向指定的单元添加值
scan通过扫描表来获取数据
get获取行或者单元的值
count统计表中行的数量,一个行键为一行
delete删除指定对象的值
deleteall删除整行
truncate清空表的数据

1、put:添加数据

格式:

put ‘表名’,‘行键’,‘列族名’:‘列族修饰符’,‘数值’,<timestamp>

其中时间戳timestamp可以省略,HBase会提供默认值,一般是时间服务器的当前时间

  hbase(main):003:0> put 'lol','row-0001','personalInfo:nickname','hero01'
  0 row(s) in 0.5420 seconds
  hbase(main):004:0> put 'lol','row-0001','recordInfo:ranking','one'
  0 row(s) in 0.8290 seconds
  hbase(main):005:0> put 'lol','row-0001','assetsInfo: integral','10000'
  0 row(s) in 0.8290 seconds 

2、scan:查询整张表或者列族的数据

格式:

scan ‘表名’ ,{COLUMNS => ‘列族名’} 或者是{COLUMN => [‘列族名’:‘列族修饰符’,…]}

大括号中的内容是扫描条件,如果不指定就查询所有数据

1)查看所有数据

scan ‘表名’

hbase(main):024:0> scan 'lol'
ROW                        COLUMN+CELL                                                                
 row-0001                  column=assetsInfo: integral, timestamp=1599550428610, value=10000          
 row-0001                  column=personalInfo:nickname, timestamp=1599553150365, value=hero01        
 row-0001                  column=recordInfo:ranking, timestamp=1599550424208, value=one              
1 row(s) in 0.0480 seconds

2)查看列族数据

scan ‘表名’,{COLUMNS => ‘列族名’}

hbase(main):026:0> scan 'lol',{COLUMNS => 'assetsInfo'}
ROW                        COLUMN+CELL                                                                
 row-0001                  column=assetsInfo: integral, timestamp=1599550428610, value=10000          
1 row(s) in 0.0570 seconds

3)查看列关键字(列键 == 列族名:列族修饰符)数据

scan ‘表名’ ,{COLUMN => [‘列族名:列族修饰符’,…]}

hbase(main):002:0> scan 'lol',{COLUMN => ['personalInfo:nickname']}
ROW                        COLUMN+CELL                                                                
 row-0001                  column=personalInfo:nickname, timestamp=1599553150365, value=hero01        
1 row(s) in 0.3800 seconds

3、get:获取行或者单元的值

格式:

get ‘表名’,‘行键’,{COLUMNS => [‘列族名1’,‘列族名2’,…],参数名 => 参数值…}

或者

get ‘表名’,‘行键’,{COLUMN => [‘列键1’,‘列键2’,…],参数名 => 参数值}

1)用行键查看所有所有单元

hbase(main):003:0> get 'lol','row-0001'
COLUMN                     CELL                                                                       
 assetsInfo: integral      timestamp=1599550428610, value=10000                                       
 personalInfo:nickname     timestamp=1599553150365, value=hero01                                      
 recordInfo:ranking        timestamp=1599550424208, value=one                                         
1 row(s) in 0.1510 seconds

2)用行键、列族查看对应的所有单元

hbase(main):004:0> get 'lol','row-0001',{COLUMNS=>'personalInfo'}
COLUMN                     CELL                                                                       
 personalInfo:nickname     timestamp=1599553150365, value=hero01                                      
1 row(s) in 0.0170 seconds

3)用行键、列键查看对应的单元

hbase(main):001:0> get 'lol','row-0001',{COLUMN=>'personalInfo:nickname'}
COLUMN                     CELL                                                                       
 personalInfo:nickname     timestamp=1599553150365, value=hero01                                      
1 row(s) in 0.9000 seconds

4、delete:删除数据

格式:

1)删除行键、列键对应的所有单元

delete ‘表名’,‘行键’,‘列键’

hbase(main):002:0> delete 'lol','row-0001','personalInfo:nickname'
0 row(s) in 0.2020 seconds

2)用行键删除一整行的所有单元

deleteall ‘表名’,‘行键’

5、truncate:删除表中所有数据

格式:

truncate ‘表名’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值