准备工作
- 启动Hbase Region服务
[root@master /]# hbase-daemon.sh start regionserver
[root@master /]# jps
105888 NodeManager
6020 HRegionServer
105572 SecondaryNameNode
105780 ResourceManager
105384 DataNode
10410 Jps
3631 HQuorumPeer
105278 NameNode
- 进入Hbase Shell
[root@master /]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/user/hbase/hbase-1.2.2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/user/hadoop/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.2, r3f671c1ead70d249ea4598f1bbcc5151322b3a13, Fri Jul 1 08:28:55 CDT 2016
Hbase 的删除操作是从前向后删除的, 必须使用 ctrl + 删除才是正常的删除
命名空间的操作
1、查看帮助
hbase(main):002:0> help
2、查看命令空间
hbase(main):001:0> list_namespace
NAMESPACE
default
hbase
3、创建命名空间
hbase(main):004:0> create_namespace 'school'
0 row(s) in 0.1790 seconds
hbase(main):005:0> list_namespace
NAMESPACE
default
hbase
school
3 row(s) in 0.0360 seconds
4、在指定的命名空间下创建表
hbase(main):006:0> create 'school:student','column-family1','column-family2'
0 row(s) in 2.6620 seconds
=> Hbase::Table - school:student
5、删除命名空间
注意:在删除命名空间前,需要确保命名空间中没有表
hbase(main):011:0> disable 'school:student'
0 row(s) in 0.0420 seconds
hbase(main):012:0> drop 'school:student'
0 row(s) in 1.4730 seconds
hbase(main):013:0> drop namespace 'school'
NoMethodError: undefined method `namespace' for #<Object:0x5f61371d>
hbase(main):014:0> drop_namespace 'school'
0 row(s) in 0.0820 seconds
表的操作
1、查看表
hbase(main):001:0> list
TABLE
bar
reviews_analysis
2 row(s) in 0.2920 seconds
2、创建表
hbase(main):013:0>
create'table','column_famaly','column_famaly1','column_famaly2'
0 row(s) in 94.9160 seconds
3、获取表的描述
hbase(main):015:0> describe'table'
Table table is ENABLED
table
COLUMN FAMILIES DESCRIPTION
{NAME =>'coluran_famaly',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.0430 seconds
4、删除一个列族
hbase(main):016:0>alter'table',{NAME=>'column_famaly',METHOD=>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 3.0220 seconds
5、删除一张表
hbase(main):020:0>disable'stu'
0 row(s) in 2.3150 seconds
hbase(main):021:0>drop'stu'
0 row(s) in 1.2820 seconds
6、往表中添加数据
/* 往emp表的rw1列族插入3列 */
hbase(main):031:0>put'emp','rw1','col_f1:name','tanggao'
0 row(s) in 0.0460 seconds
hbase(main):032:0>put'emp','rw1','col_f1:age','20'
0 row(s) in 0.0150 seconds
hbase(main):033:0>put'emp','rw1','col_f1:sex','boy'
0 row(s) in 0.0190 seconds
7、获取数据
/* 获取 emp 表中rw1行的所有数据 */
hbase(main):034:0> get 'emp','rw1'
COLUMN CELL
col_f1:age timestamp=1463055735107,value=20
col_f1:name timestamp=1463055709542,value=tanggao
col_f1:sex timestamp=1463055753395,value=boy
3 row(s) in 0.3200 seconds
// 获取 emp 表的 rw1 行 col_f1 列族的所有数据
hbase(main):035:0>get'emp','rw1','col_f1'
COLUMN CELL
col_f1:age timestamp=1463055735107,value=20
col_f1:name timestamp=1463055709542,value=tanggao col_f1:sex timestamp=1463055753395,value=boy
3 row(s) in 0.0270 seconds
8、更新数据
// 更新 emp 表的 rw1 行、col_f1 列族中 age 列的值。
hbase (main):037:0> put 'emp','rw1'col_f1:age','22'
0 row(s) in 0.0160 seconds
// 查看更新结果
hbase(main):038:0>get 'emp','rw1','col_f1:age'
COLUMN CELL
col_f1:age timestamp=1463055893492,value=22
1 row(s) in 0.0190 seconds
9、通过时间戳获取两个版本的数据
hbase(main):039:0>get 'emp','rw1',{COLUMN=>'col_f1:age',TIMESTAMP=>1463055735107}
COLUMN CELL
col_f1:age timestamp=1463055735107,value=20
1 row(s) in 0.0340 seconds
hbase(main):040:0>get 'emp','rw1',{COLUMN=>'col_f1:age',TIMESTAMP=>1463055893492}
COLUMN CELL
col_f1:age timestamp=1463055893492,value=22
1 row(s) in 0.0140 seconds
10、全表扫描
hbase(main):041:0>scan 'emp'
ROW COLUMN+CELL
id column=col_f1:age,timestamp=1463055893492,value=2
id column=col_f1:name,timestamp=1463055709542,value=tanggao
id column=col_f1:sex,timestamp=1463055753395,value=boy
1 row(s) in 0.1520 seconds
11、删除一列
hbase(main):042:0>delete 'emp','rw1','col_f1:age'
0 row(s) in 0.0200 seconds
hbase(main):043:0>get 'emp','rw1'
COLUMN CELL
col_f1:name timestamp=1463.055709542,value=tanggao col_f1:sex timestamp=1463055753395,value=boy
2 row(s) in 0.2430 seconds
12、删除行的所有单元格
hbase(main) :044:0>deleteall 'emp','rw1'
0 row(s) in 0.0550 seconds
13、清空整张表
hbase(main):007:0>truncate'emp'
Truncating 'emp' table(it may take a while);
-Disabling table...
-Truncating table...
0 row(s) in 4.1510 seconds