Hbase常用指令
1. HBase shell中的帮助命令非常强大,使用help获得全部命令的列表,使用help ‘command_name’获得某一个命令的详细信息。 例如:
help 'list'
2. 查询服务器状态
status
3. 查询Hbase版本:
version
4. 查看所有表
list
增删改
- 创建一个表
格式:
create '表名','行名','列族:列名','列簇:列名'
例如:
create 'member','member_id','address','info'
- 获得表的描述
describe 'member'
- 添加一个列族
alter 'member', 'id'
- 删除一个列族
alter 'member', {NAME => 'member_id', METHOD => 'delete’}
- 删除列
(1). 通过delete命令,我们可以删除id为某个值的‘info:age’字段
delete 'member','debugo','info:age'
(2). 删除整行的值:deleteall
deleteall 'member','debugo'
- 通过enable和disable来启用/禁用这个表,相应的可以通过is_enabled和is_disabled来检查表是否被禁用。
enabled 'member'
disabled 'member'
is_enabled 'member'
is_disabled 'member'
- 使用exists来检查表是否存在
exists 'member'
- 删除表需要先将表disable
disable 'member'
drop 'member'
- 通过put命令来插入数据
create 'member','id','address','info'
# 数据
put 'member', 'debugo','id','11'
put 'member', 'debugo','info:age','27'
put 'member', 'debugo','info:birthday','1987-04-04'
put 'member', 'debugo','info:industry', 'it'
put 'member', 'debugo','address:city','beijing'
put 'member', 'debugo','address:country','china'
put 'member', 'Sariel', 'id', '21'
put 'member', 'Sariel','info:age', '26'
put 'member', 'Sariel','info:birthday', '1988-05-09 '
put 'member', 'Sariel','info:industry', 'it'
put 'member', 'Sariel','address:city', 'beijing'
put 'member', 'Sariel','address:country', 'china'
put 'member', 'Elvis', 'id', '22'
put 'member', 'Elvis','info:age', '26'
put 'member', 'Elvis','info:birthday', '1988-09-14 '
put 'member', 'Elvis','info:industry', 'it'
put 'member', 'Elvis','address:city', 'beijing'
put 'member', 'Elvis','address:country', 'china'
查询
- 查询表中有多少行
count
- get
(1)获取一个id的所有数据
get 'member', 'xiao'
(2)获得一个id,一个列簇(一个列)中的所有数据
get 'member', 'xiao', 'info'
- 查询整表数据
scan 'member'
- 扫描整个列簇
scan 'member', {COLUMN=>'info'}
- 指定扫描其中的某个列
scan 'member', {COLUMNS=> 'info:birthday'}
- 除了列(COLUMNS)修饰词外,HBase还支持Limit(限制查询结果行数),STARTROW(ROWKEY起始行。会先根据这个key定位到region,再向后扫描)、STOPROW(结束行)、TIMERANGE(限定时间戳范围)、VERSIONS(版本数)、和FILTER(按条件过滤行)等。比如我们从Sariel这个rowkey开始,找下一个行的最新版本
scan 'member', { STARTROW => 'Sariel', LIMIT=>1, VERSIONS=>1}
- Filter是一个非常强大的修饰词,可以设定一系列条件来进行过滤。
要限制某个列的值等于6
scan 'member', FILTER=>"ValueFilter(=,'binary:6')"
值包含6这个值
scan 'member', FILTER=>"ValueFilter(=,'substring:6')"
列名中的前缀为sex的
scan 'member', FILTER=>"ColumnPrefixFilter('sex') "
FILTER中支持多个过滤条件通过括号、AND和OR的条件组合
scan 'member', FILTER=>"ColumnPrefixFilter('birth') AND ValueFilter ValueFilter(=,'substring:1988')"
对Rowkey的前缀进行判断,这是一个非常常用的功能
scan 'member', FILTER=>"PrefixFilter('E')"