hbase的api的使用

1、 先进入 hbase shell 命令行
在你安装的随意台服务器节点上,执行命令:hbase shell,会进入到你的 hbase shell 客
户端
[root@hadoop01 ~]# hbase shell
2、 进入之后先别着急,先看一下提示。其实是不是有一句很重要的话:
HBase Shell; enter ‘help’ for list of supported commands.
Type “exit” to leave the HBase Shell
意在告诉怎么获得帮助,怎么退出客户端
help 获取帮助
help 获取所有命令提示
help “dml” 获取一组命令的提示
help “put” 获取一个单独命令的提示帮助
exit 退出 hbase shell 客户端
3、 下面真正进入命令的操作演示
显示 hbase 中的表
list
第一个表名,多个列簇
create ‘user_info’,{NAME=>‘base_info’,VERSIONS=>3 },{NAME=>‘extra_info’,VERSIONS=>1 }
put ‘user_info’, ‘user0000’, ‘base_info:name’, ‘luoyufeng’
put ‘user_info’, ‘user0000’, ‘base_info:age’, ‘18’
put ‘user_info’, ‘user0000’, ‘base_info:gender’, ‘female’
put ‘user_info’, ‘user0000’, ‘extra_info:size’, ‘34’
get ‘user_info’, ‘user0000’
create ‘user_info’,{NAME=>‘base_info’ },{NAME=>‘extra_info’}
put ‘user_info’, ‘user0001’, ‘base_info:name’, ‘zhangsan1’
put ‘user_info’, ‘zhangsan_20150701_0001’, ‘base_info:name’, ‘zhangsan1’
put ‘user_info’, ‘zhangsan_20150701_0002’, ‘base_info:name’, ‘zhangsan2’
put ‘user_info’, ‘zhangsan_20150701_0003’, ‘base_info:name’, ‘zhangsan3’
put ‘user_info’, ‘zhangsan_20150701_0004’, ‘base_info:name’, ‘zhangsan4’
put ‘user_info’, ‘zhangsan_20150701_0005’, ‘base_info:name’, ‘zhangsan5’
put ‘user_info’, ‘zhangsan_20150701_0006’, ‘base_info:name’, ‘zhangsan6’
put ‘user_info’, ‘zhangsan_20150701_0007’, ‘base_info:name’, ‘zhangsan7’
put ‘user_info’, ‘zhangsan_20150701_0008’, ‘base_info:name’, ‘zhangsan8’
put ‘user_info’, ‘zhangsan_20150701_0001’, ‘base_info:age’, ‘21’
put ‘user_info’, ‘zhangsan_20150701_0002’, ‘base_info:age’, ‘22’
put ‘user_info’, ‘zhangsan_20150701_0003’, ‘base_info:age’, ‘23’
put ‘user_info’, ‘zhangsan_20150701_0004’, ‘base_info:age’, ‘24’
put ‘user_info’, ‘zhangsan_20150701_0005’, ‘base_info:age’, ‘25’
put ‘user_info’, ‘zhangsan_20150701_0006’, ‘base_info:age’, ‘26’
put ‘user_info’, ‘zhangsan_20150701_0007’, ‘base_info:age’, ‘27’
put ‘user_info’, ‘zhangsan_20150701_0008’, ‘base_info:age’, ‘28’
put ‘user_info’, ‘zhangsan_20150701_0001’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘zhangsan_20150701_0002’, ‘extra_info:Hobbies’, ‘sport’
put ‘user_info’, ‘zhangsan_20150701_0003’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘zhangsan_20150701_0004’, ‘extra_info:Hobbies’, ‘sport’
put ‘user_info’, ‘zhangsan_20150701_0005’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘zhangsan_20150701_0006’, ‘extra_info:Hobbies’, ‘sport’
put ‘user_info’, ‘zhangsan_20150701_0007’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘baiyc_20150716_0001’, ‘base_info:name’, ‘baiyc1’
put ‘user_info’, ‘baiyc_20150716_0002’, ‘base_info:name’, ‘baiyc2’
put ‘user_info’, ‘baiyc_20150716_0003’, ‘base_info:name’, ‘baiyc3’
put ‘user_info’, ‘baiyc_20150716_0004’, ‘base_info:name’, ‘baiyc4’
put ‘user_info’, ‘baiyc_20150716_0005’, ‘base_info:name’, ‘baiyc5’
put ‘user_info’, ‘baiyc_20150716_0006’, ‘base_info:name’, ‘baiyc6’
put ‘user_info’, ‘baiyc_20150716_0007’, ‘base_info:name’, ‘baiyc7’
put ‘user_info’, ‘baiyc_20150716_0008’, ‘base_info:name’, ‘baiyc8’
put ‘user_info’, ‘baiyc_20150716_0001’, ‘base_info:age’, ‘21’
put ‘user_info’, ‘baiyc_20150716_0002’, ‘base_info:age’, ‘22’
put ‘user_info’, ‘baiyc_20150716_0003’, ‘base_info:age’, ‘23’
put ‘user_info’, ‘baiyc_20150716_0004’, ‘base_info:age’, ‘24’
put ‘user_info’, ‘baiyc_20150716_0005’, ‘base_info:age’, ‘25’
put ‘user_info’, ‘baiyc_20150716_0006’, ‘base_info:age’, ‘26’
put ‘user_info’, ‘baiyc_20150716_0007’, ‘base_info:age’, ‘27’
put ‘user_info’, ‘baiyc_20150716_0008’, ‘base_info:age’, ‘28’
put ‘user_info’, ‘baiyc_20150716_0001’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘baiyc_20150716_0002’, ‘extra_info:Hobbies’, ‘sport’
put ‘user_info’, ‘baiyc_20150716_0003’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘baiyc_20150716_0004’, ‘extra_info:Hobbies’, ‘sport’
put ‘user_info’, ‘baiyc_20150716_0005’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘baiyc_20150716_0006’, ‘extra_info:Hobbies’, ‘sport’
put ‘user_info’, ‘baiyc_20150716_0007’, ‘extra_info:Hobbies’, ‘music’
put ‘user_info’, ‘rk0001’, ‘base_info:name’, ‘luoyufeng’
put ‘user_info’, ‘rk0001’, ‘base_info:name’, ‘zhangsan’
get ‘user_info’, ‘rk0001’
scan ‘user_info’, {COLUMNS => ‘base_info’}
scan ‘user_info’, {COLUMNS => ‘extra_info’}
创建 user 表,包含 info、data 两个列簇
create ‘user’, ‘info1’, ‘data1’
create ‘user’, {NAME => ‘info’, VERSIONS => ‘3’}
向 user 表中插入信息,row key 为 rk0001,列簇 info 中添加 name 列标示符,值为 zhangsan
put ‘user’, ‘rk0001’, ‘info:name’, ‘zhangsan’
向 user 表中插入信息,row key 为 rk0001,列簇 info 中添加 gender 列标示符,值为 female
put ‘user’, ‘rk0001’, ‘info:gender’, ‘female’
向 user 表中插入信息,row key 为 rk0001,列簇 info 中添加 age 列标示符,值为 20
put ‘user’, ‘rk0001’, ‘info:age’, 20
向 user 表中插入信息,row key 为 rk0001,列簇 data 中添加 pic 列标示符,值为 picture
put ‘user’, ‘rk0001’, ‘data:pic’, ‘picture’
获取 user 表中 row key 为 rk0001 的所有信息
get ‘user’, ‘rk0001’
获取 user 表中 row key 为 rk0001,info 列簇的所有信息
get ‘user’, ‘rk0001’, ‘info’
获取 user 表中 row key 为 rk0001,info 列簇的 name、age 列标示符的信息
get ‘user’, ‘rk0001’, ‘info:name’, ‘info:age’
获取 user 表中 row key 为 rk0001,info、data 列簇的信息
get ‘user’, ‘rk0001’, ‘info’, ‘data’
get ‘user’, ‘rk0001’, {COLUMN => [‘info’, ‘data’]}
get ‘user’, ‘rk0001’, {COLUMN => [‘info:name’, ‘data:pic’]}
获取 user 表中 row key 为 rk0001,列簇为 info,版本号最新 5 个的信息
get ‘user’, ‘rk0001’, {COLUMN => ‘info’, VERSIONS => 2}
get ‘user’, ‘rk0001’, {COLUMN => ‘info:name’, VERSIONS => 5}
get ‘user’, ‘rk0001’, {COLUMN => ‘info:name’, VERSIONS => 5, TIMERANGE =>
[1392368783980, 1392380169184]}
获取 user 表中 row key 为 rk0001,cell 的值为 zhangsan 的信息
get ‘people’, ‘rk0001’, {FILTER => “ValueFilter(=, ‘binary:图片’)”}
获取 user 表中 row key 为 rk0001,列标示符中含有 a 的信息
get ‘people’, ‘rk0001’, {FILTER => “(QualifierFilter(=,‘substring:a’))”}
put ‘user’, ‘rk0002’, ‘info:name’, ‘fanbingbing’
put ‘user’, ‘rk0002’, ‘info:gender’, ‘female’
put ‘user’, ‘rk0002’, ‘info:nationality’, ‘中国’
get ‘user’, ‘rk0002’, {FILTER => “ValueFilter(=, ‘binary:中国’)”}
查询 user 表中的所有信息
scan ‘user’
查询 user 表中列簇为 info 的信息
scan ‘user’, {COLUMNS => ‘info’}
scan ‘user’, {COLUMNS => ‘info’, RAW => true, VERSIONS => 5}
scan ‘persion’, {COLUMNS => ‘info’, RAW => true, VERSIONS => 3}
Scan 时可以设置是否开启 Raw 模式,开启 Raw 模式会返回包括已添加删除标记但是未
实际删除的数据。
查询 user 表中列簇为 info 和 data 的信息
scan ‘user’, {COLUMNS => [‘info’, ‘data’]}
scan ‘user’, {COLUMNS => [‘info:name’, ‘data:pic’]}
查询 user 表中列簇为 info、列标示符为 name 的信息
scan ‘user’, {COLUMNS => ‘info:name’}
查询 user 表中列簇为 info、列标示符为 name 的信息,并且版本最新的 5 个
scan ‘user’, {COLUMNS => ‘info:name’, VERSIONS => 5}
查询 user 表中列簇为 info 和 data 且列标示符中含有 a 字符的信息
scan ‘user’, {COLUMNS => [‘info’, ‘data’], FILTER => “(QualifierFilter(=,‘substring:a’))”}
查询 user 表中列簇为 info,rk 范围是[rk0001, rk0003)的数据
scan ‘people’, {COLUMNS => ‘info’, STARTROW => ‘rk0001’, ENDROW => ‘rk0003’}
查询 user 表中 row key 以 rk 字符开头的
scan ‘user’,{FILTER=>“PrefixFilter(‘rk’)”}
查询 user 表中指定范围的数据
scan ‘user’, {TIMERANGE => [1392368783980, 1392380169184]}
删除数据
删除 user 表 row key 为 rk0001,列标示符为 info:name 的数据
delete ‘people’, ‘rk0001’, ‘info:name’
删除 user 表 row key 为 rk0001,列标示符为 info:name,timestamp 为 1392383705316 的数据
delete ‘user’, ‘rk0001’, ‘info:name’, 1392383705316
清空 user 表中的数据
truncate ‘people’
修改表结构
首先停用 user 表(新版本不用)
disable ‘user’
添加两个列簇 f1 和 f2
alter ‘people’, NAME => ‘f1’
alter ‘user’, NAME => ‘f2’
启用表
enable ‘user’
###disable ‘user’(新版本不用)
删除一个列簇:
alter ‘user’, NAME => ‘f1’, METHOD => ‘delete’ 或 alter ‘user’, ‘delete’ => ‘f1’
添加列簇 f1 同时删除列簇 f2
alter ‘user’, {NAME => ‘f1’}, {NAME => ‘f2’, METHOD => ‘delete’}
将 user 表的 f1 列簇版本号改为 5
alter ‘people’, NAME => ‘info’, VERSIONS => 5
启用表
enable ‘user’
删除记录
delete ‘person’, ‘rk0001’, ‘info:name’
删除字段
delete ‘person’, ‘rk0001’, ‘info:name’
删除表
disable ‘user’
drop ‘user’
过滤器
get ‘person’, ‘rk0001’, {FILTER => “ValueFilter(=, ‘binary:中国’)”}
get ‘person’, ‘rk0001’, {FILTER => “(QualifierFilter(=,‘substring:a’))”}
scan ‘person’, {COLUMNS => ‘info:name’}
scan ‘person’, {COLUMNS => [‘info’, ‘data’], FILTER => “(QualifierFilter(=,‘substring:a’))”}
scan ‘person’, {COLUMNS => ‘info’, STARTROW => ‘rk0001’, ENDROW => ‘rk0003’}
scan ‘person’, {COLUMNS => ‘info’, STARTROW => ‘20140201’, ENDROW => ‘20140301’}
scan ‘person’, {COLUMNS => ‘info:name’, TIMERANGE => [1395978233636,
1395987769587]}
alter ‘person’, NAME => ‘ffff’
alter ‘person’, NAME => ‘info’, VERSIONS => 10
get ‘user’, ‘rk0002’, {COLUMN => [‘info:name’, ‘data:pic’]}

猜你喜欢

转载自blog.csdn.net/zwmonk/article/details/83685449