剑客
关注科技互联网

HBase Shell初接触

1. 连接到HBase

连接到正在运行的HBase实例使用“hbase shell”命令。该命令位于HBase安装路径的/bin目录下。我这里将bin目录加入到了系统环境变量PATH中。执行命令:

 $ hbaseshell
SLF4J: Class pathcontainsmultipleSLF4Jbindings.
SLF4J: Foundbindingin [jar:file:/home/nancy/dev/hbase-1.2.2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Foundbindingin [jar:file:/home/nancy/dev/hadoop-2.7.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Seehttp://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actualbindingis oftype [org.slf4j.impl.Log4jLoggerFactory]
HBaseShell; enter 'help<RETURN>' for listofsupportedcommands.
Type "exit<RETURN>" to leavetheHBaseShell
Version 1.2.2, r3f671c1ead70d249ea4598f1bbcc5151322b3a13, FriJul  1 08:28:55 CDT 2016

2. 查看HBase Shell帮助信息

输入“help”并按下回车键,可以查看一些HBase Shell的基础用法以及几个命令示例。注意命令中的表名、行名、列名需要以引号括起来。

3. 创建一个表

使用“create”命令创建一个新的表。建表时必须指定表名及列族名称。

hbase(main):002:0> create 'test', 'cf'
0 row(s) in 3.6690 seconds
 
=> Hbase::Table - test

4. 列出创建的表的信息

需要使用“list”命令:

hbase(main):003:0> list 'test'
TABLE  
test                                                                                                                    
1 row(s) in 0.1200 seconds
 
=> ["test"]

5. 向表中写入数据

使用“put”命令向表中写入数据:

hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.8650 seconds
 
hbase(main):001:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 1.0150 seconds
 
hbase(main):002:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0130 seconds

在这里我们插入了三条记录,每次一条。第一次插入的行是‘row1’,列是‘cf:a’,值是‘value1’。HBase中的列由一个列族前缀(这里是‘cf’),跟着一个半角冒号,最后是使用列限定符(这里是‘a’)做后缀。

6. 扫描(scan)表中的全部数据

从HBase读取数据的一种方式是scan。使用scan命令来扫描全表获取数据。也可以在scan中加上少许限制,不过这一次是获取全部的数据。

hbase(main):001:0> scan 'test'
ROW        COLUMN+CELL            
 row1      column=cf:a, timestamp=1476023016853, value=value1          
 row2      column=cf:b, timestamp=1476023301621, value=value2                
 row3      column=cf:c, timestamp=1476023350882, value=value3      
3 row(s) in 0.6550 seconds

7. 获取某一行数据

要一次只获取一行记录可以使用“get”命令:

hbase(main):002:0> get 'test', 'row1'
COLUMN        CELL    
 cf:a        timestamp=1476023016853, value=value1                            
1 row(s) in 0.0780 seconds

8. 禁用(disable)一个表

想要删掉一个表或者修改一个表的设置(还有一些其他的类似的情况),需要先禁用这个表。这里可以使用“disable”命令。想要重新启用这个表可以使用enable命令。

hbase(main):003:0> disable 'test'
0 row(s) in 3.0280 seconds
 
hbase(main):004:0> enable 'test'
0 row(s) in 2.4230 seconds

9. 删除(drop)一个表

要删除一个表可以使用“drop”命令。我们首先需要disable这个表:

hbase(main):005:0> disable 'test'
0 row(s) in 2.3510 seconds
 
hbase(main):006:0> drop 'test'
0 row(s) in 2.4040 seconds

使用list命令再查看下‘test’表的信息:

hbase(main):007:0> list 'test'
TABLE                                                                                                                                                                                          
0 row(s) in 0.1170 seconds
 
=> []

已经查不到这个表的信息了。

10. 退出HBase Shell

要退出HBase Shell并和集群断开连接可以使用“quit”命令。然而HBase仍然会在后台运行。

#######

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址