使用Hbase 存取数据 (二)

一,启动hbase shell

[root@localhost bin]# clear
[root@localhost bin]# hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.27, rfb434617716493eac82b55180b0bbd653beb90bf, Thu Mar 19 06:17:55 UTC 2015
hbase(main):001:0> 
二,创建表
 创建一张 表明为user 列族为 cf 数据表
hbase(main):003:0> create 'user','cf'
0 row(s) in 1.7180 seconds
hbase(main):004:0> 
三,写入数据
 我们知道rowkey 吧,知道 columnfamily 吧, 下边语句在user表中的 'u001'行中的 'cf:name'列对应的数据空间中插入 'lisa'
hbase(main):004:0> put 'user','u001','cf:name','lisa'
0 row(s) in 0.0890 seconds
我们多存储一些值进去,HBase存储数字和字符串的方式一样
给lisa年龄赋值
hbase(main):006:0> put 'user','u001','cf:age','20'
0 row(s) in 0.0060 seconds
给lisa性别赋值
hbase(main):007:0> put 'user','u001','cf:sex','superman'
0 row(s) in 0.0080 seconds
三,获取u001的数据  我们可以根据rowkey获取整行数据
hbase(main):008:0> get 'user','u001'
COLUMN                             CELL                                                                                               
 cf:age                            timestamp=1516864911849, value=20                                                                  
 cf:name                           timestamp=1516864624536, value=lisi                                                                
 cf:sex                            timestamp=1516865046100, value=superman                                            
3 row(s) in 0.0260 seconds
 scan命令获取所有行,目前只有一行数据,hbase可以存取每个数据的多个版本,还附带时间戳
hbase(main):014:0> scan 'user'
ROW                                COLUMN+CELL                                                                                        
 u001                              column=cf:age, timestamp=1516864911849, value=20                                                   
 u001                              column=cf:name, timestamp=1516864624536, value=lisi                                                
 u001                              column=cf:sex, timestamp=1516865859931, value=superman                                             
1 row(s) in 0.0310 seconds
总结:

 hbase 基于的存储方式很灵活;每个rowkey 所对应的行可以有不同数量的列

       hbase columnFamily:id,columnFamily:name,columnFamily:sex 更像表字段;
hbase:
  表1    表2   表3   表n
  表:
  列族1   列族2  列族3   列族n
  列族:
  列1   列2   列3    列n







猜你喜欢

转载自blog.csdn.net/hulele2009/article/details/79162103