一 .这里用一个学生成绩表作为例子,对HBase的基本操作和基本概念进行讲解。下面是学生的成绩表结构。

name   	       grad      course:math       course:art 
Tom   		1            87          	97 
Jerry   	2           100          	80

这里grad对于表来说是一个列,course对于表来说是一个列族,这个列族由两个列组成:math和art,当然可以根据需要在course中建立更多的列族,如computer、physics等。

有了上面的想法和需求,就可以在HBase中建立相应的数据表了。

二. Shell的基本操作

HBase提供了一个Shell的终端供用户交互。使用命令HBase Shell进入命令界面。对Shell命令行基本功能的理解有助于编写更好的Shell程序,在执行Shell命令时,多个命令可以在一个命令行上运行,但此时要使用分号(;)分隔命令。

 [root@localhost root]# ls a* -l;free;df

长Shell命令行可以使用反斜线字符(\)在命令行上扩充。

 [root@localhost root]# echo “this is \
>long command”
This is long command

下面以学生成绩表为实例,学习Shell的基本操作。

1.用create命令创建表,其格式如下:

hbase(main):002:0> create 'scores', 'grade', 'course' 
0 row(s) in 4.1610 seconds 

2.查看当前HBase中有哪些表,应用list命令,其格式如下:

hbase(main):003:0> list 
scores 
1 row(s) in 0.0210 seconds 

3.要查看scores表的结构,可使用describe命令实现,格式如下:

bbase(main):004:0> describe 'scores' 
{NAME => 'scores', IS_ROOT => 'false', IS_META => 'false', FAMILIES => [{NAME => 'course', 
BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', 
VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}, {NAME => 'grade', BLOOMFILTER => 'false', 
IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', 
COMPRESSION => 'NONE'}]} 
1 row(s) in 0.0130 seconds 

4.采用put命令,在行名为Tom、列族为grad的列名中插入语句,格式如下:

hbase(main):005:0> put 'scores', 'Tom', 'grade:', '1' 
0 row(s) in 0.0070 seconds 

5.添加数据采用put命令,给Tom列族corse:math添加数据,格式如下:

hbase(main):006:0> put 'scores', 'Tom', 'course:math', '87' 
0 row(s) in 0.0040 seconds 

6.添加数据采用put命令,给Tom列族corse:math添加数据,格式如下:

hbase(main):006:0> put 'scores', 'Tom', 'course:math', '87' 
0 row(s) in 0.0040 seconds 

7.采用put命令实现,格式如下:

hbase(main):008:0> put 'scores', 'Jerry', 'grade:', '2' 
0 row(s) in 0.0040 seconds 

8.采用get命令,查看表中行名为“Tom”的数据,格式如下:

hbase(main):011:0> get 'scores', 'Tom' 
COLUMN CELL 
course:art timestamp=1224726394286, value=97 
course:math timestamp=1224726377027, value=87 
grade: timestamp=1224726360727, value=1 
3 row(s) in 0.0070 seconds

9.采用scan命令,查看表中的所有数据,命令格式如下:

hbase(main):012:0> scan 'scores' 
ROW COLUMN+CELL 
Tom  column=course:art, timestamp=1224726394286, value=97 
Tom column=course:math, timestamp=1224726377027, value=87 
Tom column=grade:, timestamp=1224726360727, value=1 
Jerry  column=course:art, timestamp=1224726424967, value=80 
Jerry  column=course:math, timestamp=1224726416145, value=100 
Jerry column=grade:, timestamp=1224726404965, value=2 
6 row(s) in 0.0410 seconds 
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐