一、HBase简介
1、什么是HBase
HBase(Hadoop DataBase)是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。
HBase是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBASE同样利用Hadoop MapReduce来处理HBASE中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为其分布式协调服务。
用来存储非结构化和半结构化的松散数据
2、 与传统数据库相比
传统数据库遇到的问题:
数据量很大的时候无法存储
没有很好的备份机制
数据达到一定数量开始缓慢,很大的话基本无法支撑
HBase优势:
线性扩展,随着数据量增多可以通过节点扩展进行支撑
数据存储在hdfs上,备份机制健全
通过zookeeper协调查找数据,访问速度块。
3、HBase特点
海量存储
HBase 适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与HBase的极易扩展性息息相关。正式因为HBase良好的扩展性,才为海量数据的存储提供了便利。
列式存储
这里的列式存储其实说的是列族(ColumnFamily)存储,HBase 是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。
极易扩展
HBase 的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。
通过横向添加RegionSever的机器,进行水平扩展,提升HBase上层的处理能力,提升HBsae服务更多Region的能力。
高并发
由于目前大部分使用HBase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,HBase的单个IO延迟下降并不多。能获得高并发、低延迟的服务。
稀疏
稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。