夏季体验HBase的魅力

2019-09-24 17:03:21 浏览数 (1)

因为伪分布式的hbase的依赖于hdfs,因此我将hbase安装好后,首先启动hadoop的hdfs,然后再启动hbase。关闭顺序反之,先关hbase,再关闭hdfs。

一、首先开启hdfs、hbase

1、开启hdfs

/usr/local/hadoop/sbin/start-dfs.sh

用jps命令查看有三个进程,说明启动成功。

2、开启hbase

/usr/local/hbase/bin/start-hbase.sh

用jps命令查看有六个进程,说明启动成功。

3、在hdfs中检查hbase的文件存储情况

我们用hdfs命令检查,发现hbase启动成功后的确创建了一个hbase的文件夹。所有hbase的数据库全部存储在hdfs中。

二、进入Hbase的Shell界面,进行操作体验

1、创建HBase表时,不需要use数据库,直接创建即可。

create 'student','Sname','Ssex','Sage','Sdept','course'

2、用list相当于mysql中的show tables;用describe与mysql中的desc查看表结构作用相同

3、用put增加数据,相当于mysql中的insert

用put命令每次只能增加一个cell的内容,效率很低,在实际中一般采用编程方式往hbase中增加数据。其中97001是该行的键值。

put 'student','97001','Sname','mx'

put 'student','97001','Ssex','male'

put 'student','97001','Sage','22'

put 'student','97001','Sdept','computer'

put 'student','97001','course:math','80'

4、我们用put命令增加4个cell单元内容后,用scan命令查看该行的记录。

scan 'student'

大家会发现有一个course:math,这是什么内容。在Hbase中的column family,column也就是对应这个。course是column family,math是column。这也是Hbase的灵活之处。

5、用delete删除单元格数据、delete all删除一行数据

delete 'student','97001','Ssex'

deleteall 'student','97001'

三、体验Hbase的时间邮戳功能

1、创建一个能保存10个历史记录单元格的表格

create 'teacher',{NAME=>'username',VERSIONS=>10},'Sage'

2、向同一个单元格写入多条数据

put 'teacher','97001','username','MX'

put 'teacher','97001','username','SKY'

put 'teacher','97001','username','BLUE'

3、检查一个单元格中的数据,的确保存了三份不同的数据。该功能可广泛应用于社交APP中,保存留言等事先不知道数量的场景。

四、Hbase的应用小结

1、Hbase底层架构在HDFS上,因此是廉价易扩展的Nosql数据库,能够随着HDFS的扩展而横向扩展。

2、Hbase具有横拆、坚拆表存储的功能,能够将同一个大表的数据拆分为多个Region。如将rowkey为1-100的拆分为一个Region。HBase将不同的Region分布到不同的服务器上进行存储、检索,提高数据的处理效率。Region的设计不是越多越好,太多反而会加重调度的负担,而太小则性能无法发挥,因此Region的数量设计一般根据服务器的性能取适当的值。

3、HBase按rowkey进行数据查询的效率很高,每毫秒可查询1000-2000条记录,适合存储物联网数据。

0 人点赞