传统的数据处理主要使用关系数据库(MySQL、Oracle等)来完成,不过关系数据库在面对大规模的数据存储时明显力不从心。比如,在有关高并发操作和海量数据统计运算的应用中,关系数据库的性能就明显下降。
大数据时代的数据规模大、增长快、格式多样,因此传统的关系数据库已经不能适应新的需求。在这样的背景下,非关系数据库开始成为主流的选择。为了更大地拓展数据库的存储潜力,谷歌(Google)公司首先研发了 BigTable,这就是 HBase 的原型。
HBase 是用 Java 编程语言实现的一个开源的非关系型分布式数据库,它参考了谷歌的 BigTable 数据建模白皮书。
HBase 是 Apache 软件基金会的 Hadoop 项目的一部分,运行于 HDFS 之上,为 Hadoop 提供类似于 BigTable 规模的服务。因此,它能以容错方式存储海量的稀疏数据。
稀疏数据是指数据库中的二维表内含有大量空值的数据。
HBase 是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据,设计它的目的就是用于处理非常庞大的表——通过水平扩展的方式,用计算机集群就可以处理由超过 10 亿行数据和数百万列元素所组成的数据表。
HBase 有许多功能支持线性和模块化扩展,HBase 集群通过添加托管在商用服务器上的 RegionServer 进行扩展。例如,一个集群从 10 台 RegionServer 扩展到 20 台,它的存储和处理能力都会翻倍。
以下是 HBase 的发展历程:
2006 年谷歌公司发表 BigTable 白皮书。
2006 年开始开发 HBase。
2008 年 HBase 成为 Hadoop 的子项目,刚开始它只是 Hadoop 的一部分。
2010 年 HBase 成为 Apache 的顶级项目。HBase 几乎实现了 BigTable 的所有特性。