shell客户端删除光标前面的字符:Ctrl+删除键,很麻烦。最好在外面写好之后粘贴过去
# 在hbase/bin下
hbase shell
# 从Help中可以的看到hbase command包含的种类
help
NAME
和VERSIONS
大小写敏感,小写会报错# 创建user表,包含两个列族:info data
create ‘user’,'info','data'
# 创健user表,包含两个列族:info,data。 info 版本数为3,data版本数为2
# 大于3的版本,会被打上墓碑标记,在flush的时候删除
create 'user' ,{NAME=>'info',VERSIONS => '3'},{NAME=>'data',VERSIONS=>'2'}
# 像user表的info列族中插入信息,rowkey为rk0001,添加列:name,值为zhangsan
put 'user','rk0001','info:name','zhangsan'
# 向user表中插入信息,row key为rk0001,列族info中添加名为gender的列,值为female
HBase(main):012:0> put 'user', 'rk0001', 'info:gender', 'female'
# 向user表中插入信息,row key为rk0001,列族info中添加名为age的列,值为20
HBase(main):013:0> put 'user', 'rk0001', 'info:age', 20
# 向user表中插入信息,row key为rk0001,列族data中添加名为pic的列,值为picture
HBase(main):014:0> put 'user', 'rk0001', 'data:pic', 'picture'
get 'user' 'rk0001'
get 'user', 'rk0001', 'info'
get 'user' ,'rk0001', 'info:name','info:age'
get 'user', 'rk0001', 'info:name', 'data:pic'
# 两种写法效果一致,前者简洁,后者查询意义更直观
get 'user', 'rk0001', 'info', 'data'
get 'user', 'rk0001', {COLUMN => ['info', 'data']}
# 获取user表中row key为rk0001,cell的值为zhangsan的信息r
get 'user', 'rk0001', {FILTER => "ValueFilter(=, 'binary:zhangsan')"}
# 获取user表中row key为rk0001,列标示符中含有a的信息
get 'user', 'rk0001', {FILTER => "QualifierFilter(=,'substring:a')"}
scan 'user'
COLUMNS
不可以省略scan 'user', {COLUMNS => 'info'}
scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 5}
scan 'user', {COLUMNS => 'info', RAW => true}
scan 'user', {COLUMNS => 'info'}
scan 'user', {COLUMNS => ['info', 'data']}
# 查询user表中列族为info、列标示符为name的信息
scan 'user', {COLUMNS => 'info:name'}
# 查询info:name列、data:pic列的数据
scan 'user', {COLUMNS => ['info:name', 'data:pic']}
# 查询user表中列族为info、列标示符为name的信息,并且版本最新的5个
scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}
scan 'user', {COLUMNS => ['info', 'data'],
FILTER => "(QualifierFilter(=,'substring:a'))"}
rowkey
的范围查询是左闭右开区间查询user表中列族为info,rk范围是[rk0001, rk0002)的数据
scan 'user', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0002'}
# 查询user表中row key以rk字符开头的数据
scan 'user',{FILTER=>"PrefixFilter('rk')"}
# 查询user表中指定范围的数据(前闭后开)
scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}
put
。有数据执行更新,没数据执行插入在这里插入代码片
alter 'user', NAME => 'info', VERSIONS => 5
删除的数据在上还存在,只是被打上墓碑标记。等待特定时机从物理上删除。
# 实际上就是删除某个cell
delete 'user', 'rk0001', 'info:name'
#实际上就是删除指定cell的某个版本的值
delete 'user', 'rk0001', 'info:name', 1392383705316
alter 'user', NAME => 'info', METHOD => 'delete'
# 或
alter 'user', 'delete' => 'info'
truncate 'user'
disable 'user'
drop 'user'
count 'user'
status 'hbaseServerName'
whoami
list
count 'user'
describe 'user'
exists 'user'
is_enabled 'user'
is_disabled 'user'
enable 'user'
disable 'user'
drop 'user'
truncate 'user'
alter 'user',NAME => 'TESTCF',VERSIONS =>2
alter 'user', 'delete' => 'CF2'