学科分类

HBase的简介

HBase起源于2006年Google发表的BigTable论文。在2008年,PowerSet的Chad Walters和Jim Keller受到了该论文思想的启发,从而把HBase作为Hadoop的子项目来进行开发维护,用于支持结构化的海量数据存储。

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,利用HBase可在廉价PC 服务器上搭建起大规模结构化存储集群。HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。HBase分布式数据库具有如下的显著特点:

容量大

HBase分布式数据库中的表可以存储成千上万的行和列组成的数据。

面向列

HBase是面向列的存储和权限控制,并支持独立检索。列存储,其数据在表中是按照某列存储的,根据数据动态的增加列,并且可以单独对列进行各种操作。

多版本

HBase中表的每一个列的数据存储都有多个Version(版本)。一般地,每一列对应着一条数据,但是有的数据会对应多个版本,例如,存储个人信息的HBase表中,如果某个人多次更换过家庭住址,那么记录家庭住址的数据就会有多个版本。

稀疏性

由于HBase中表的列允许为空,并且空列不会占用存储空间,因此,表可以设计的非常稀疏。

扩展性

HBase的底层是依赖于HDFS。当磁盘空间不足时,我们可以动态的增加机器(即DataNode节点服务)来解决,从而避免像关系型数据库那样,进行数据的迁移。

高可靠性

由于HBase底层使用是的HDFS,而HDFS本身具有备份机制,所以在Spark集群出现严重问题时,Replication(即副本)机制能够保证数据不会发生丢失或损坏。

虽然HBase是Google Bigtable的开源实现,但是它们之间有很多不同之处,例如:Google BigTable利用GFS作为其文件存储系统,而HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理BigTable中的海量数据,而HBase同样利用Hadoop的MapReduce来处理HBase中的海量数据;Google BigTable利用Chubby作为协同服务,而HBase利用Zookeeper作为协调服务作用。

HBase作为一种分布式数据库,它与传统数据库相比有很大区别,下面从存储模式、表字段以及可延伸性这三个方面分别进行介绍。

(1) 存储模式

传统数据库中是基于行存储的,而HBase是基于列进行存储的。

(2) 表字段

传统数据库中的表字段不能超过30个,而HBase中的表字段不作限制。

(3) 可延伸性

传统数据库中的列是固定的,需要先确定列有多少才会增加数据去存储,而HBase是根据数据存储的大小去动态的增加列,列是不固定的。

点击此处
隐藏目录