因为伪分布式的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条记录,适合存储物联网数据。