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\’
ROWCOLUMN+CELL
001column=cf1:name, timestamp=1478053832459,value=Tom
001column=cf1:age,timestamp=1478053787178,value=18
001 column=cf:phone,timestamp=1478053848225, value=13309882999
001column=cf2:address, timestamp=1478053858144,value=昆明
row(s)in0.0140seconds
因为表中只有一条数据,所以结果和下面查询一条数据的结果相同
4 ,查看其中某一个Key的数据
hbase(main):048:0>get\’hbase_test\’,\’001\’
COLUMNCELL
001column=cf1:name, timestamp=1478053832459,value=Tom
001column=cf1:age,timestamp=1478053787178,value=18
001 column=cf:phone,timestamp=1478053848225, value=13309882999
001column=cf2:address, timestamp=1478053858144,value=昆明
这是这几天学习hbase的一点总结