(三) Hbase操作命令(DDL、DML)

准备工作

  • 启动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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值