在这之前已经配置好环境变量
[wzy@hadoop102 hbase]$ hbase shell
hbase:001:0> create_namespace 'bigdata'
hbase:002:0> list_namespace
以网上的一个学生成绩表的例子来演示hbase的用法。这里grad对于表来说是一个只有它自己的列族,course对于表来说是一个有两个列的列族,这个列族由两个列组成math和art,当然我们可以根据我们的需要在course中建立更多的列族,如computer,physics等相应的列添加入course列族。
hbase:003:0> create 'bigdata:scores','grad','course'
hbase:004:0> list
hbase:005:0> describe 'bigdata:scores'
hbase:006:0> alter 'bigdata:scores',{NAME=>'grad',VERSIONS=>3}
alter "bigdata:scores",'delete'=>'grad'
5.删除表
shell中删除表,需要将表格设置为不可用
disable 'bigdata:scores'
drop 'bigdata:scores'
put 'scores','Tom','grade:','5'
put 'scores','Tom','course:math','97'
put 'scores','Tom','course:art','87'
put 'scores','Jim','grade:','4'
put 'scores','Jim','course:','89'
put 'scores','Jim','course:','80'
put命令比较简单,只有这一种用法:
hbase> put 't1', 'r1', 'c1', 'value', 'ts1'
t1指表名,r1指行键名,c1指列名,value指单元格值。ts1指时间戳,一般都省略掉了。
如果重复写入多个rowkey,相同列的数据,会写入多个版本进行覆盖。
2. 读取数据
get 'scores','Jim'
get 'scores','Jim','grade'
可能你就发现规律了,HBase的shell操作,一个大概顺序就是操作关键词后跟表名,行名,列名这样的一个顺序,如果有其他条件再用花括号加上。
scan 'scores'
也可以指定一些修饰词:TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,or COLUMNS。没任何修饰词,就是上边例句,就会显示所有数据行。
3. 删除数据
delete 'scores','Jim','grade'
执行这个命令不会删除数据,而是标记为delete,只有在清理磁盘的时候才会删除
)deleteall 'scores','Jim','grade'