一,启动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