HBase 常用命令

进入HBase 命令行

./hbase shell

查看Hbase 的状态 status

hbase(main):007:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 8.0000 average load

显示HBase 中的表 list

list

---

hbase(main):008:0> list
TABLE                                                                                                                                                                       
member                                                                                                                                                                      
mytable                                                                                                                                                                     
test                                                                                                                                                                        
test0417                                                                                                                                                                    
user                                                                                                                                                                        
web_test                                                                                                                                                                    
6 row(s) in 0.0100 seconds

=> ["member", "mytable", "test", "test0417", "user", "web_test"]

删除表 drop

删除表的前提是表要处于disable的状态,如果没有则disable 表
hbase(main):016:0> drop 'user'
0 row(s) in 3.1690 seconds

创建表 create

create 第一个参数是代表Row ,后面的代表Column
hbase(main):017:0> create 'user','info','data'
0 row(s) in 8.6390 seconds

=> Hbase::Table - user
hbase(main):018:0> desc 'user'
Table user is ENABLED                                                                                                                                 
user                                                                                                                                                  
COLUMN FAMILIES DESCRIPTION                                                                                                                           
{NAME => 'data', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                             
{NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                             
2 row(s) in 0.0180 seconds
插入数据 put
需要主要的是在HBase中更新和创建记录数据是相同的命令,每一条记录将自动记录多次变更的情况,类似于SVN一样,但是在设计表的时候可以设置最大保存的version的最大数,读取的时候也可以读取指定的的版本数

直接给一个列插入数据(非列族下的列),类型为字符串和字典

hbase(main):020:0> put 'user','0001','info','only_info_value'
0 row(s) in 0.0700 seconds
#插入的是一个字典类型数据,注意字典需要双引号
hbase(main):022:0> put 'user','0002','info',"{'value':'1234'}"
0 row(s) in 0.0120 seconds

直接赋值给列族中的列,自动创建列,只添加一个的情况

hbase(main):025:0> put 'user','0003','data:age','18'
0 row(s) in 0.0150 seconds

hbase(main):026:0> scan 'user'
ROW                                    COLUMN+CELL                                                                                                    
 0001                                  column=info:, timestamp=1492422232548, value=only_info_value                                                   
 0002                                  column=info:, timestamp=1492422363530, value={'value':'1234'}                                                  
 0003                                  column=data:age, timestamp=1492423135470, value=18                                                             
3 row(s) in 0.0200 seconds

添加多个列,实质上就是再执行一次put 操作,此时row_key和原来是一样的,如下所示:

hbase(main):027:0> put 'user','0003','data:gender','female'
0 row(s) in 0.0090 seconds

hbase(main):028:0> scan 'user'
ROW                                    COLUMN+CELL                                                                                                    
 0001                                  column=info:, timestamp=1492422232548, value=only_info_value                                                   
 0002                                  column=info:, timestamp=1492422363530, value={'value':'1234'}                                                  
 0003                                  column=data:age, timestamp=1492423135470, value=18                                                             
 0003                                  column=data:gender, timestamp=1492423353786, value=female                                                      
3 row(s) in 0.0110 seconds

读取数据get

读取某一行的所有数据

hbase(main):029:0> get 'user','0001'
COLUMN                                 CELL                                                                                                           
 info:                                 timestamp=1492422232548, value=only_info_value                                                                 
1 row(s) in 0.0270 seconds

读取一行中一个列族的所有信息
(为了演示,给info列增加一个值

hbase(main):033:0> put 'user','0001','info:123','ext_001'
0 row(s) in 0.0090 seconds
hbase(main):035:0> scan 'user'
ROW                                    COLUMN+CELL                                                                                                    
 0001                                  column=info:, timestamp=1492422232548, value=only_info_value                                                   
 0001                                  column=info:123, timestamp=1492496315262, value=ext_001                                                        
 0002                                  column=info:, timestamp=1492422363530, value={'value':'1234'}                                                  
 0003                                  column=data:age, timestamp=1492423135470, value=18                                                             
 0003                                  column=data:gender, timestamp=1492423353786, value=female                                                      
3 row(s) in 0.0170 seconds
hbase(main):037:0> get 'user','0001','info'
COLUMN                                 CELL                                                                                                           
 info:                                 timestamp=1492422232548, value=only_info_value                                                                 
 info:123                              timestamp=1492496315262, value=ext_001                                                                         
2 row(s) in 0.0090 seconds

获取列族中某一个字段的值

hbase(main):038:0> get 'user','0003','data:age'
COLUMN                                 CELL                                                                                                           
 data:age                              timestamp=1492423135470, value=18                                                                              
1 row(s) in 0.0110 seconds

获取user表中row key为0003,列标示符中含有a的信息
有问题,待补充

读取全表数据scan

hbase(main):042:0> scan 'user'
ROW                                    COLUMN+CELL                                                                                                    
 0001                                  column=info:, timestamp=1492422232548, value=only_info_value                                                   
 0001                                  column=info:123, timestamp=1492496315262, value=ext_001                                                        
 0002                                  column=info:, timestamp=1492422363530, value={'value':'1234'}                                                  
 0003                                  column=data:age, timestamp=1492423135470, value=18                                                             
 0003                                  column=data:gender, timestamp=1492423353786, value=female                                                      
3 row(s) in 0.0150 seconds
查询表中有多少行 count
hbase(main):043:0> count 'user'
3 row(s) in 0.0140 seconds

=> 3

默认是1000行显示一次,也可以调整

# 语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
# INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
# 例如,查询表t1中的行数,每100条显示一次,缓存区为500
hbase(main)> count 't1', {INTERVAL => 100, CACHE => 500}
删除指定行某一列的数据 delete
hbase(main):049:0> get 'user','0001'
COLUMN                                 CELL                                                                                                           
 info:                                 timestamp=1492422232548, value=only_info_value                                                                 
 info:123                              timestamp=1492496315262, value=ext_001                                                                         
2 row(s) in 0.0090 seconds

hbase(main):050:0> delete 'user','0001','info:123'
0 row(s) in 0.0250 seconds

hbase(main):051:0> get 'user','0001'
COLUMN                                 CELL                                                                                                           
 info:                                 timestamp=1492422232548, value=only_info_value                                                                 
1 row(s) in 0.0070 seconds
添加两个列族 alter table_name ,NAME =>列族名
hbase(main):052:0> desc 'user'
Table user is ENABLED                                                                                                                                 
user                                                                                                                                                  
COLUMN FAMILIES DESCRIPTION                                                                                                                           
{NAME => 'data', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                             
{NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                             
2 row(s) in 0.0180 seconds
hbase(main):055:0> alter 'user',NAME =>'Content'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 3.2340 seconds

hbase(main):056:0> desc 'user'
Table user is ENABLED                                                                                                                                 
user                                                                                                                                                  
COLUMN FAMILIES DESCRIPTION                                                                                                                           
{NAME => 'Content', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS => '1', TTL => 'FOR
EVER', MIN_VERSIONS => '0', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                          
{NAME => 'data', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                             
{NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS =
> '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                             
3 row(s) in 0.0150 seconds

查询指定时间段的方法 TIMERANGE

hbase(main):012:0> scan 'user'
ROW                                          COLUMN+CELL                                                                                                                    
 0001                                        column=info:, timestamp=1492422232548, value=only_info_value                                                                   
 0002                                        column=info:, timestamp=1492422363530, value={'value':'1234'}                                                                  
 0003                                        column=data:age, timestamp=1492423135470, value=18                                                                             
 0003                                        column=data:gender, timestamp=1492423353786, value=female                                                                      
3 row(s) in 0.0210 seconds

hbase(main):013:0> scan 'user',{TIMERANGE =>[1492422232548,1492422232549]}
ROW                                          COLUMN+CELL                                                                                                                    
 0001                                        column=info:, timestamp=1492422232548, value=only_info_value                                                                   
1 row(s) in 0.0110 seconds

清空表:truncate ‘lmj_test’

转载于:https://www.cnblogs.com/angellst/p/7561461.html

HBase是一个基于Hadoop的分布式数据库,常用于存储大数据量及高并发的应用场景。下面是HBase常用命令及使用方法的简要介绍: 1. 创建表:create 'table_name', 'column_family' 创建一个名为table_name的表,指定列族为column_family。 2. 查看表:list 列出所有已创建的表。 3. 插入数据:put 'table_name', 'row_key', 'column_family:column', 'value' 插入数据到指定的表和行,指定列族、列和值。 4. 获取单行数据:get 'table_name', 'row_key' 获取指定表和行的数据。 5. 获取整表数据:scan 'table_name' 扫描并获取整张表的数据。 6. 删除数据:delete 'table_name', 'row_key', 'column_family:column' 删除指定表、行、列族下的数据。 7. 删除表:disable 'table_name' drop 'table_name' 禁用并删除指定的表。 8. 增加、修改列族:alter 'table_name', {NAME => 'column_family', VERSIONS => 'n'} 增加或修改指定表的列族,指定VERSIONS参数可以设置列的版本数量。 9. 启用或禁用表:enable 'table_name' disable 'table_name' 启用或禁用指定的表。 10. 设置表的最大版本数:alter 'table_name', {NAME => 'column_family', VERSIONS => 'n'} 设置指定表的列族的最大版本数。 11. 备份和恢复数据:snapshot 'snapshot_name', 'table_name' restore 'snapshot_name' 创建指定表的快照,并可以使用快照进行数据恢复。 通过使用这些常用命令,可以方便地管理HBase数据库,并进行数据的增删改查操作。需要注意的是,HBase是一个分布式数据库,涉及到多个节点的数据存储和处理,因此在进行操作时需要考虑数据一致性和分布式处理的特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值