【Hadoop】HBase Shell 练习
来源:互联网 发布:乾坤一号指标源码 编辑:程序博客网 时间:2024/05/16 04:52
1. 环境准备
成功启动HBase,假如你还没有成功地部署HBase,可以先看下:HBase部署入门指南
2. HBase Shell 练习
2.1 基本操作
1)成功启动HBase之后,想要使用HBase Shell ,得输入命令行:hbase shell 并且控制台成功打印以下信息:
备注:写错 HBase Shell 命令时将光标移动到你要删除的字符上,按下‘Backspace’或者‘Delete’删除
2)输入help命令查看 ‘COMMAND’ :hbase(main):001:0> help
3)输入 version 查看HBase 版本
hbase(main):003:0> version
0.98.23-hadoop2, r44c724b56dc1431209f561cb997fce805f9f45f9, Wed Oct 5 01:05:05 UTC 2016
2.2 DDL 操作
1)创建和删除表格
创建
create ‘student’,’info’,’address’,’score’
删除表格之前先要disabled
disabled ‘student’
drop ‘student’
2)查看表格描述
describe ‘student’
如下:
hbase(main):015:0> describe ‘student’
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => ‘address’, DATA_BLOCK_ENCODING => ‘NONE’, BLOOMFILTER => ‘ROW’, REPLICATION_SCOPE => ‘0’, VERSIONS => ‘1’, COMPRESSION => ‘NONE’, MIN_VERSIONS => ‘0’, TTL => ‘FOREVER’, KEEP_DELETE
D_CELLS => ‘FALSE’, BLOCKSIZE => ‘65536’, IN_MEMORY => ‘false’, BLOCKCACHE => ‘true’}
{NAME => ‘info’, DATA_BLOCK_ENCODING => ‘NONE’, BLOOMFILTER => ‘ROW’, REPLICATION_SCOPE => ‘0’, VERSIONS => ‘1’, COMPRESSION => ‘NONE’, MIN_VERSIONS => ‘0’, TTL => ‘FOREVER’, KEEP_DELETED_C
ELLS => ‘FALSE’, BLOCKSIZE => ‘65536’, IN_MEMORY => ‘false’, BLOCKCACHE => ‘true’}
{NAME => ‘score’, DATA_BLOCK_ENCODING => ‘NONE’, BLOOMFILTER => ‘ROW’, REPLICATION_SCOPE => ‘0’, VERSIONS => ‘1’, COMPRESSION => ‘NONE’, MIN_VERSIONS => ‘0’, TTL => ‘FOREVER’, KEEP_DELETED_
CELLS => ‘FALSE’, BLOCKSIZE => ‘65536’, IN_MEMORY => ‘false’, BLOCKCACHE => ‘true’}
3 row(s) in 0.0900 seconds
3)修改表格(schema)
alter ‘student’,NAME=>’info’,VERSIONS => 5
查询结果如下:
hbase(main):012:0> describe ‘student’
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => ‘address’, DATA_BLOCK_ENCODING => ‘NONE’, BLOOMFILTER => ‘ROW’, REPLICATION_SCOPE => ‘0’, COMPRESSION => ‘NONE’, VERSIONS => ‘1’, TTL => ‘FOREVER’, MIN_VERSIONS => ‘0’, KEEP_DELETE
D_CELLS => ‘FALSE’, BLOCKSIZE => ‘65536’, IN_MEMORY => ‘false’, BLOCKCACHE => ‘true’}
{NAME => ‘info’, DATA_BLOCK_ENCODING => ‘NONE’, BLOOMFILTER => ‘ROW’, REPLICATION_SCOPE => ‘0’, COMPRESSION => ‘NONE’, VERSIONS => ‘5’, TTL => ‘FOREVER’, MIN_VERSIONS => ‘0’, KEEP_DELETED_C
ELLS => ‘FALSE’, BLOCKSIZE => ‘65536’, IN_MEMORY => ‘false’, BLOCKCACHE => ‘true’}
{NAME => ‘score’, DATA_BLOCK_ENCODING => ‘NONE’, BLOOMFILTER => ‘ROW’, REPLICATION_SCOPE => ‘0’, COMPRESSION => ‘NONE’, VERSIONS => ‘1’, TTL => ‘FOREVER’, MIN_VERSIONS => ‘0’, KEEP_DELETED_
CELLS => ‘FALSE’, BLOCKSIZE => ‘65536’, IN_MEMORY => ‘false’, BLOCKCACHE => ‘true’}
3 row(s) in 0.0740 seconds
注意上下两个查询中黑体字的对比
2.3 DML操作
1)插入数据:put
put ‘student’,’xiaoming’,’info:age’,18
put ‘student’,’xiaoming’,’info:birthday’,’1990-12-12’
put ‘student’,’xiaoming’,’info:school’,’beijingdaxue’
put ‘student’,’xiaoming’,’address:country’,’china’
put ‘student’,’xiaoming’,’address:province’,’guangdong’
put ‘student’,’xiaoming’,’address:city’,’shenzhen’
2)全盘扫描:scan
2.1)获得整个表格的数据
scan ‘student’
2.2)查询某一列的数据:scan
scan ‘student’ {COLUMNS => ‘info:birthday’}
注意:如果你不知道scan还有那些方法可以使用,你可以输入 scan help,然后系统就会告诉你出错,并且告诉你正确的多重输入指令
3)get:获得数据
3.1)获得某一行数据
get ‘student’,’xiaoming’
3.2)获得某行某列族数据
get ‘student’,’xiaoming’,’info’
3.3)获得某行某列族某列数据
get ‘student’,’xiaoming’,’info:age’
3.4)获得某行某列族某列的多个版本数据
先插入数据:
put ‘student’,’xiaoming’,’info:age’,100,123456789
put ‘student’,’xiaoming’,’info:age’,158,12313213132212321
再查询数据:
get ‘student’,’xiaoming’,{COLUMN => ‘info:age’,TIMERANGE =>[0,123132131322123211],VERSIONS =>5}
结果如下:
更多关于get的命令如下,大家有时间可以多敲敲
常用get命令格式: hbase> get 'ns1:t1', 'r1' hbase> get 't1', 'r1' hbase> get 't1', 'r1', {TIMERANGE => [ts1, ts2]} hbase> get 't1', 'r1', {COLUMN => 'c1'} hbase> get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']} hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1} hbase> get 't1', 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4} hbase> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4} hbase> get 't1', 'r1', {FILTER => "ValueFilter(=, 'binary:abc')"} hbase> get 't1', 'r1', 'c1' hbase> get 't1', 'r1', 'c1', 'c2' hbase> get 't1', 'r1', ['c1', 'c2'] hbase> get 't1','r1', {COLUMN => 'c1', ATTRIBUTES => {'mykey'=>'myvalue'}} hbase> get 't1','r1', {COLUMN => 'c1', AUTHORIZATIONS => ['PRIVATE','SECRET']}
4)更新数据
put ‘student’,’xiaoming’,’info:age’,100
再查询info:age
get ‘student’,’xiaoming’,’info:age’
更多关于put的命令如下,大家有时间多敲敲
hbase> put 'ns1:t1', 'r1', 'c1', 'value' hbase> put 't1', 'r1', 'c1', 'value' hbase> put 't1', 'r1', 'c1', 'value', ts1 hbase> put 't1', 'r1', 'c1', 'value', {ATTRIBUTES=>{'mykey'=>'myvalue'}} hbase> put 't1', 'r1', 'c1', 'value', ts1, {ATTRIBUTES=>{'mykey'=>'myvalue'}} hbase> put 't1', 'r1', 'c1', 'value', ts1, {VISIBILITY=>'PRIVATE|SECRET'}
5)统计:统计有多少行
count ‘student’
6)删除数据
6.1)删除student表中’xiaoming’行中的info:school中的值
delete ‘student’,’xiaoming’,’info:school’
再查询:
get ‘student’,’xiaoming’,’info:school’
6.2)删除整行
deleteall ‘student’,’xiaoming’
再查询:
scan ‘student’
更多删除全部命令如下:
hbase> deleteall 'ns1:t1', 'r1' hbase> deleteall 't1', 'r1' hbase> deleteall 't1', 'r1', 'c1' hbase> deleteall 't1', 'r1', 'c1', ts1 hbase> deleteall 't1', 'r1', 'c1', ts1, {VISIBILITY=>'PRIVATE|SECRET'}
7)创建 “对象”
hbase> t = get_table 't' hbase> t.scan
get 的命令:
hbase> t.get 'r1' hbase> t.get 'r1', {TIMERANGE => [ts1, ts2]} hbase> t.get 'r1', {COLUMN => 'c1'} hbase> t.get 'r1', {COLUMN => ['c1', 'c2', 'c3']} hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1} hbase> t.get 'r1', {COLUMN => 'c1', TIMERANGE => [ts1, ts2], VERSIONS => 4} hbase> t.get 'r1', {COLUMN => 'c1', TIMESTAMP => ts1, VERSIONS => 4} hbase> t.get 'r1', {FILTER => "ValueFilter(=, 'binary:abc')"} hbase> t.get 'r1', 'c1' hbase> t.get 'r1', 'c1', 'c2' hbase> t.get 'r1', ['c1', 'c2']
例子:
t.get ‘xiaoming’, {COLUMNS => ‘info:age’}
其他命令的格式都跟get的一样,请自行修改即可
- 【Hadoop】HBase Shell 练习
- Hadoop学习笔记之HBase Shell语法练习
- Hadoop--hbase---练习13
- hbase shell 练习
- hbase Shell命令练习
- Hadoop—HBase基础知识-----练习
- 【Hadoop】HBase Java API 练习
- Hbase的shell命令练习
- Hadoop—hbase安装----练习12
- HBase shell常用命令练习(1)
- Hadoop之——Hbase Shell命令
- Hadoop集群之上Hbase Shell例子
- HBASE SHELL 错误NativeException: org.apache.hadoop.hbase.MasterNotRunningException: null
- Hadoop基础教程-第10章 HBase:Hadoop数据库(10.5 HBase Shell)(草稿)
- Hadoop实习操作练习1(Hive与HBase初探)
- Hadoop第11周练习—HBase基础知识
- Hadoop第12周练习—HBase安装部署
- Hadoop第13周练习—HBase作业
- mysql性能调优_修改文件my.ini
- jms使用长连接
- python基础
- 高效sql写法样例
- hashmap transfer方法分析
- 【Hadoop】HBase Shell 练习
- 树回归CART(Classification And Regression Tree)(2)
- 关于.9图片的总结
- 事物控制
- 页面的解析-文件
- 杭州电子科技大学程序设计竞赛(2016’12)
- zookeeper集群搭建设置
- UML類圖簡要筆記
- 目前我所使用的AndroidStudio插件