使用HBase Shell访问HBase

HBase可以通过shell进行通信。

HBase属于NoSQL数据库的典型代表,并不支持SQL查询语句,但是HBase有自带的查询语句。 HBase shell,最简单的接口,适合HBase管理使用,可以使用shell命令来查询HBase中数据的详细情况。

这里我们使用HBase Shell来测试前面的HBase集群安装是否能正常使用。关于HBase Shell更详细的使用,请参考第四单

一、环境准备

1、启动HDFS和HBase:

$ start-dfs.sh
$ start-hbase.sh

2、执行如下命令,以连接正在运行的HBase实例:

$ ./bin/hbase shell

3、执行如下命令,查看HBase的状态,例如,服务器的数量。

hbase(main):001:0> status

4、执行如下命令,查看HBase的版本信息。

hbase(main):001:0> version

5、显示HBase帮助信息:

hbase(main):001:0> help

6、查看某个命令的具体用法(例如create命令),使用下面的方法:

hbase(main):001:0> help  'create'

二、简单数据操作

接下来就可以创建一个简单的表,添加一些数据,然后清除。

1、创建一张表,命名为test,该表有一个列家族data,使用默认的表和列家族属性:

(使用create命令来创建一张新表。必须指定表名和ColumnFamily name)

create 'test','data'
list			# 列出表信息

2、向三个不同的行以及data列家族插入数据,获取第一行,然后列表显示表内容:

put 'test','row1','data:q1','value1'
put 'test','row2','data:q2','value2'
put 'test','row3','data:q3','value3'
get 'test','row1'			# 获取单行数据
scan 'test'				# 扫描表获取所有数据

delete 'test','row2','data:q2'          # 删除指定的一个cell
deleteall 'test','row3'                 # 删除一整行

3、要删除一张表,首先要禁用它:

disable 'test'			# 要重新启用这张表,使用enable 'test'
drop 'test'
list

4、执行下面的命令,退出HBase shell,断开连接:

quit

exit

5、执行下面的命令,关闭HBase:

$ stop-hbase.sh

使用jps来确定HMaster和HRegionServer进程已关闭。

三、练习

1. 创建表test

create 'test', 'cf'

2. 列表查看表

list 'test'

3. put数据入表:

put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'

4. 扫描表

scan 'test'

5. 获取单行数据

get 'test', 'row1'

6. 禁用表和启用表

disable 'test'
enable 'test'

7. 删除表(要先禁用,再删除)

disable 'test'
drop 'test'
四、常见问题

1、如果HMaster掉了怎么办?

$ ./bin/hbase-daemon.sh start master

2、如果HRegionServer掉了怎么办?

$ ./bin/hbase-daemon.sh start regionserver

《Flink原理深入与编程实战》