HBase shell 命令创建表,表名hbase_test,HBase表是由Key-Value组成的,下面给出一个hbase表的格式,方便小伙伴们理解
此表有两个列族,列族1和列族2,其中列族1和列族2下分别有两个列name和age,phone和address
注意:hbase的表只动态加入列的,比如说列族1下面有两列,再添加数据时,可以在动态的加一列。
1 ,创建表hbase_test有两个列族CF1和CF2
hbase(main):041:0>create 'hbase_test', {NAME=>'cf1'},{NAME=>'cf2'}
2 ,向表中添加数据,在想HBase的表中添加数据的时候,只能一列一列的添加,不能同时添加多列。
hbase(main):042:0>put'hbase_test', '001','cf1:name','Tom'
hbase(main):043:0>put'hbase_test', '001','cf1:age','18'
hbase(main):044:0>put'hbase_test', '001','cf2:phone’, ‘13309882999’
hbase(main):045:0>put'hbase_test', '001','cf2:address',’昆明’
注意:shell语句后跟分号表示语句还没有,这一点恰恰和mysql相反(我的理解)
这样表结构就起来了,其实比较自由,列族里边可以自由添加子列很方便。如果列族下没有子列,cf1:name加不加冒号都是可以的,也可以写成cf1name
如果在添加数据的时候,需要手动的设置时间戳,则在put命令的最后加上相应的时间戳,时间戳是long类型的,所以不需要‘加引号
Hbase(main):045:0>put'hbase_test', '001','cf2:phone','13309882999',1478053832459
3 ,查看表中的所有数据
hbase(main):046:0>scan 'hbase_test'
ROW COLUMN+CELL
001 column=cf1:name, timestamp=1478053832459, value=Tom
001 column=cf1:age, timestamp=1478053787178, value=18
001 column=cf:phone, timestamp=1478053848225, value=13309882999
001 column=cf2:address, timestamp=1478053858144, value=昆明
row(s)in0.0140seconds
因为表中只有一条数据,所以结果和下面查询一条数据的结果相同
4 ,查看其中某一个Key的数据
hbase(main):048:0>get'hbase_test','001'
COLUMN CELL
001 column=cf1:name, timestamp=1478053832459, value=Tom
001 column=cf1:age, timestamp=1478053787178, value=18
001 column=cf:phone, timestamp=1478053848225, value=13309882999
001 column=cf2:address, timestamp=1478053858144, value=昆明
这是这几天学习hbase的一点总结