HBase + DDL + DML

  禁用表:disable '表名'
  启用表:enable '表名'


 Group name: replication
  Commands: add_peer, disable_peer,enable_peer, remove_peer, start_replication, stop_replication
---------------------------------------------------------------------------------
  
一、一般操作


1. 查询服务器状态
hbase(main):024:0>status
4 servers, 1 dead, 108.0000 average load
 
2.查询Hbase版本
 
hbase(main):025:0>version
1.1.2.2.4.2.0-258, rUnknown, Mon Apr 25 06:36:21 UTC 2016


 
二、DDL操作
 
1. 创建一个表
hbase(main):011:0>create 'member','member_id','address','info'   
0 row(s) in 1.2210seconds
 
2. 获得表的描述
hbase(main):012:0>list
TABLE                                                  
member                                                 
1 row(s) in 0.0160seconds


hbase(main):169:0> describe 'member'
Table member is ENABLED                                                                                                              
member                                                                                                                               
COLUMN FAMILIES DESCRIPTION                                                                                                          
{NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'N
ONE', 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 => 't
rue'}                                                                                                                                
{NAME => 'member_id', 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.0240 seconds


 
3. 删除一个列族,alter,disable,enable
我们之前建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。


hbase(main):003:0>alter 'member',{NAME=>'member_id',METHOD=>'delete'}
 
ERROR: Table memberis enabled. Disable it first before altering.
报错,删除列族的时候必须先将表给disable掉。


hbase(main):004:0>disable 'member'                                  
0 row(s) in 2.0390seconds
hbase(main):005:0>alter'member',{NAME=>'member_id',METHOD=>'delete'}
0 row(s) in 0.0560seconds
hbase(main):003:0> describe 'member'
Table member is ENABLED                                                                   
member                                                                                    
COLUMN FAMILIES DESCRIPTION                                                               
{NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE
 => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KE
EP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'tr
ue'}                                                                                      
{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.0220 seconds


该列族已经删除,我们继续将表enable
hbase(main):008:0> enable 'member'  
0 row(s) in 2.0420seconds
 
 
4. drop一个表
hbase(main):029:0>disable 'member'
0 row(s) in 2.0590seconds
 
hbase(main):030:0>drop 'member'
0 row(s) in 1.1070seconds
 
 
5. 查询表是否存在
hbase(main):005:0> exists 'member'
Table member does exist                                                                   
0 row(s) in 0.0170 seconds


 
6. 判断表是否enable
hbase(main):034:0>is_enabled 'member'
true                                                  
0 row(s) in 0.0110seconds
 
判断表是否disable
hbase(main):032:0>is_disabled 'member'
false                                                  
0 row(s) in 0.0110seconds
 
 
 
三、DML操作


1. 插入几条记录(put '表名称', '行名称', 列簇:列名称', '值')
put'member','scutshuxue','info:age','24'
put'member','scutshuxue','info:birthday','1987-06-17'
put'member','scutshuxue','info:company','alibaba'
put'member','scutshuxue','address:contry','china'
put'member','scutshuxue','address:province','zhejiang'
put'member','scutshuxue','address:city','hangzhou'


put'member','xiaofeng','info:birthday','1987-4-17'
put'member','xiaofeng','info:favorite','movie' 
put'member','xiaofeng','info:company','alibaba'
put'member','xiaofeng','address:contry','china'
put'member','xiaofeng','address:province','guangdong'
put'member','xiaofeng','address:city','jieyang'
put'member','xiaofeng','address:town','xianqiao'
 
 
 
2. 获取一条数据:获取一个id的所有数据
hbase(main):002:0> get 'member','scutshuxue'
COLUMN                  CELL                                                              
 address:city           timestamp=1492679285200, value=hangzhou                           
 address:contry         timestamp=1492679285159, value=china                              
 address:province       timestamp=1492679285179, value=zhejiang                           
 info:age               timestamp=1492679285087, value=24                                 
 info:birthday          timestamp=1492679285115, value=1987-06-17                         
 info:company           timestamp=1492679285137, value=alibaba                            
6 row(s) in 0.0360 seconds
 
3. 获取一个id,一个列族的所有数据
hbase(main):003:0> get 'member','scutshuxue','info'
COLUMN                  CELL                                                              
 info:age               timestamp=1492679285087, value=24                                 
 info:birthday          timestamp=1492679285115, value=1987-06-17                         
 info:company           timestamp=1492679285137, value=alibaba                            
3 row(s) in 0.0290 seconds


 
4. 获取一个id,一个列族中一个列的所有数据
hbase(main):004:0> get 'member','scutshuxue','info:age'
COLUMN                  CELL                                                              
 info:age               timestamp=1492679285087, value=24                                 
1 row(s) in 0.0140 seconds
 
5. 更新一条记录:将scutshuxue的年龄改成99
hbase(main):005:0> put 'member','scutshuxue','info:age','99'
0 row(s) in 0.0820 seconds


hbase(main):006:0> get 'member','scutshuxue','info:age'
COLUMN                  CELL                                                              
 info:age               timestamp=1492680082372, value=99                                 
1 row(s) in 0.0130 seconds


 
6. 通过timestamp来获取两个版本的数据
hbase(main):008:0> get 'member','scutshuxue',{COLUMN=>'info:age',TIMESTAMP=>1321586238965}
COLUMN                  CELL                                                              
0 row(s) in 0.0090 seconds
 
get 'member','scutshuxue',{COLUMN=>'info:age',TIMESTAMP=>1321586571843}
 
 
全表扫描:
hbase(main):001:0> scan 'member'
ROW                     COLUMN+CELL                                                       
 scutshuxue             column=address:city, timestamp=1492679285200, value=hangzhou      
 scutshuxue             column=address:contry, timestamp=1492679285159, value=china       
 scutshuxue             column=address:province, timestamp=1492679285179, value=zhejiang  
 scutshuxue             column=info:age, timestamp=1492680082372, value=99                
 scutshuxue             column=info:birthday, timestamp=1492679285115, value=1987-06-17   
 scutshuxue             column=info:company, timestamp=1492679285137, value=alibaba       
 xiaofeng               column=address:city, timestamp=1492679441516, value=jieyang       
 xiaofeng               column=address:contry, timestamp=1492679441440, value=china       
 xiaofeng               column=address:province, timestamp=1492679441475, value=guangdong 
 xiaofeng               column=address:town, timestamp=1492679441589, value=xianqiao      
 xiaofeng               column=info:birthday, timestamp=1492679285229, value=1987-4-17    
 xiaofeng               column=info:company, timestamp=1492679441376, value=alibaba       
 xiaofeng               column=info:favorite, timestamp=1492679285249, value=movie        
2 row(s) in 0.3240 seconds
 
7. 删除id为scutshuxue 的值的‘info:age’字段(delete)
hbase(main):002:0> delete 'member','scutshuxue','info:age'
0 row(s) in 0.0060 seconds


hbase(main):003:0> get 'member','scutshuxue'
COLUMN                  CELL                                                              
 address:city           timestamp=1492679285200, value=hangzhou                           
 address:contry         timestamp=1492679285159, value=china                              
 address:province       timestamp=1492679285179, value=zhejiang                           
 info:company           timestamp=1492679285137, value=alibaba                            
4 row(s) in 0.0300 seconds




删除整行(deleteall)
hbase(main):001:0>deleteall 'member','xiaofeng'
0 row(s) in 0.3990seconds
 
8. 查询表中有多少行(count):
hbase(main):009:0> count 'member'
1 row(s) in 0.0130 seconds
=> 1


 
9. 给‘xiaofeng’这个id增加'info:age'字段,并使用counter实现递增
hbase(main):009:0> incr 'member','xiaofeng','info:age'
COUNTER VALUE = 1
0 row(s) in 0.1230 seconds


hbase(main):010:0> get 'member','xiaofeng','info:age'
COLUMN                  CELL                                                              
 info:age               timestamp=1492682041028, value=\x00\x00\x00\x00\x00\x00\x00\x01   
1 row(s) in 0.1050 seconds


 
hbase(main):011:0> incr 'member','xiaofeng','info:age'
COUNTER VALUE = 2
0 row(s) in 0.0140 seconds


hbase(main):012:0> get 'member','xiaofeng','info:age'
COLUMN                  CELL                                                              
 info:age               timestamp=1492682332791, value=\x00\x00\x00\x00\x00\x00\x00\x02   
1 row(s) in 0.0130 seconds


 
10. 获取当前count的值
hbase(main):069:0>get_counter 'member','xiaofeng','info:age' 
COUNTER VALUE = 2
  
11. 将整张表清空(truncate):
hbase(main):019:0> truncate 'member'
Truncating 'member' table (it may take a while):
 - Disabling table...
 - Truncating table...
0 row(s) in 7.0780 seconds


hbase(main):020:0> scan 'member'
ROW                                COLUMN+CELL                                                                                       
0 row(s) in 0.3260 seconds


可以看出,hbase是先将disable掉,然后drop掉后重建表来实现truncate的功能的。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值