HBase Shell
下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:filter
名称 |
命令表达式 |
创建表 |
create '表名称', '列名称1','列名称2','列名称N' |
添加记录 |
put '表名称', '行名称', '列名称:', '值' |
查看记录 |
get '表名称', '行名称' |
查看表中的记录总数 |
count '表名称' |
删除记录 |
delete '表名' ,'行名称' , '列名称' |
删除一张表 |
先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称' |
查看所有记录 |
scan "表名称" |
查看某个表某个列中所有数据 |
scan "表名称" , ['列名称:'] |
更新记录 |
就是重写一遍进行覆盖 |
一、一般操作
1.查询服务器状态
2.查询hbase版本
二、DDL操作
1.创建一个表(包含三个列族)
create 'member','member_id','address','info'
2.获得表的描述
list
describe 'member’
3.删除一个列族,alter,disable,enable
我们之前建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。(关键字大小写敏感)
disable 'member'
alter'member',NAME=>'member_id',METHOD=>'delete'
describe 'member'
该列族已经删除,我们继续将表enable
enable 'member'
4.drop一个表
disable 'temp_table'
drop 'temp_table'
6.查询表是否存在
exists 'member'
7.判断表是否enable
is_enabled 'member'
8.判断表是否disable
is_disabled 'member'
三、DML操作
1.插入几条记录
put 'member','xiaoming','info:age','24'
put 'member','xiaoming','info:birthday','1987-06-17'
put 'member','xiaoming','info:company','alibaba'
put 'member','xiaoming','address:contry','china'
put 'member','xiaoming','address:province','zhejiang'
put 'member','xiaoming','address:city','hangzhou'
put 'member','xiaofeng','info:birthday','1987-4-17'
put 'member','xiaofeng','info:favorite','movie'
put 'member','xiaofeng','info:company','alibaba'
put 'member','xiaofeng','address:contry','china'
put 'member','xiaofeng','address:province','guangdong'
put 'member','xiaofeng','address:city','jieyang'
put 'member','xiaofeng','address:town','xianqiao'
2.获取一条数据
获取一个id的所有数据
get 'member','xiaofeng'
获取一个id,一个列族的所有数据
get 'member', 'xiaoming','info'
获取一个id,一个列族中一个列的所有数据
get 'member','xiaoming','info:age'
3.更新一条记录
将xiaoming的年龄改成99
put 'member','xiaoming','info:age' ,'99'
get 'member','xiaoming','info:age'
4.通过timestamp来获取两个版本的数据
get 'member','xiaoming',{COLUMN=>'info:age',TIMESTAMP=>1321586238965}
get 'member','xiaoming',{COLUMN=>'info:age',TIMESTAMP=>1321586571843}
得到多行 多列数据
scan ‘test′, {COLUMNS => ['cf:a', 'cf2'] }
指定最新几个版
scan 't3', { COLUMNS => ['f1:a', 'f2:a'],VERSIONS=>5}
create '表名',{NAME='列族名1',VERSIONS=给定一个版本号},{NAME='列族名2',VERSIONS=给定的版本号}
5.删除id为xiaoming的值的‘info:age’字段
delete 'member','xiaoming','info:age'
6.删除整行
deleteall 'member','xiaofeng'
7.查询表中有多少行:
count 'member'
8.给xiaofeng这个id增加'info:age'字段
incr 'member','xiaofeng','info:age'
get 'member','xiaofeng','info:age'
9.将整张表清空:
truncate 'member'
可以看出,hbase是先将掉disable掉,然后drop掉后重建表来实现清空的功能的。
得到所有行info:birthday列中的数据
scan 'member' , {COLUMNS => 'info:birthday'}