且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《HBase企业应用开发实战》—— 2.4 HBase Shell工具使用

更新时间:2022-10-04 19:26:08

本节书摘来自华章出版社《HBase企业应用开发实战》一 书中的第2章,第2.4节,作者:马延辉 孟鑫 李立松 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 HBase Shell工具使用

可以通过命令行工具连接HBase,从而对HBase中的表进行基本操作,命令如下:

$ ./bin/hbase shell

连接成功后将进入HBase的执行环境:

HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.18, r1577788, Sat Mar 15 04:46:47 UTC 2014

hbase(main):001:0>

输入help,然后按回车键可以看到命令的详细帮助信息,需要注意的是,在使用命令引用到表名、行和列时需要加单引号。创建一个名为test的表,这个表只有一个column family(列族)为cf。然后列出所有的表来检查创建情况,之后插入一些数据,命令如下:

hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'table'
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds

以上命令分别插入了三行数据。第一行rowkey为row1,列为cf:a,值为value1。HBase中的列是由column family前缀和列的名字组成的,以冒号分隔。
扫描整个表的数据使用scan命令,操作如下:

hbase(main):007:0> scan 'test'
ROW        COLUMN+CELL
row1       column=cf:a, timestamp=1288380727188, value=value1
row2       column=cf:b, timestamp=1288380738440, value=value2
row3       column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds

获取单行数据使用get命令,操作如下:

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

停用表使用disable命令,删除这个表可以通过drop命令实现,此时数据也随之删除,操作如下:

hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds

退出Shell使用exit命令:

hbase(main):014:0> exit