
前言
大数据(Big Data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,并命名与之相关的技术发展与创新。现在的各个行业都依赖于大量数据的支撑,数据量也越来越庞大,关系型数据库海量数据读写性能差、灵活度欠缺等缺点也暴露出来。因此,大量NewSQL数据库在这个背景下诞生并被广泛应用,其中HBase就是这样的一个分布式、可扩展的数据存储系统。HBase于2006年年底由PowerSet的Chad Walters和Jim Kellerman发起,2008年成为Apache Hadoop的一个子项目,现在已作为成熟产品应用在淘宝、百度、天猫、菜鸟、阿里云、高德、优酷等多家知名互联网企业,满足业务对于大数据分布式存储的基本需求。它不同于关系型数据库着重于增、删、改,而转向着重于查询,使数据读取更加高效、安全。基于Hadoop生态,HBase使用HDFS分布式存储系统作为共享文件存储系统。
HBase技术来源于Fay Chang所撰写的论文Google BigTable,是BigTable的开源实现。HBase在Hadoop上提供了BigTable的功能,现已成为Apache开源项目的一个顶级项目。
在Hadoop生态圈中,HBase位于结构化存储层,HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,ZooKeeper为HBase提供了稳定的failover(故障转移)机制。此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变得非常简单,Sqoop则为HBase提供了方便的关系型数据库数据导入功能。HBase在Hadoop生态圈中的地位可见一斑。
HBase和Hadoop一样,目标是通过横向扩展,添加普通机器来提高存储性能和计算性能。HBase特点:大(一个表可以有上亿行以及百万级的列)、面向行存储、稀疏(由于null不占用存储空间,所以表结构可以设计得非常稀疏)。因此,HBase和Hadoop一样,目标是通过横向扩展,添加普通机器来提高存储性能和计算性能。