Hbase简介
- 分布式的、面向列,可以运行在HDFS上的数据库
- 适合存储访问超大规模的数据集
- 不是关系型数据库,不支持SQL
- 源于google的bigtable论文
- Hbase,不支持各种数据类型,只有字符串类型(底层都是:字节数组)
概念介绍
- RowKey:表中每条记录的主键;
- Column Family:列族,将表进行横向切割;
- Column:属于某一个列族,可动态添加列;
- Version Number:类型为Long,默认值是系统时间戳,可由用户自定义;
- Value:真实的数据;
- Region:一段数据的集合;
- RegionServer:用于存放Region的服务
Hbase与传统型数据库的区别
-
存储的量级
传统的关系型数据库,随着数据量的增大,查询速度会越来越慢,一张有上百个字段的数据表在有千万级别的数据量时,响应速度会变的非常缓慢。
而HBase是一个分布式的数据存储系统,它的建立是基于HDFS的。其设计的初衷就是为了解决传统关系型数据库在处理海量数据时,速度太慢的问题。 -
数据的灵活度
HBase是面向列存储的,其存储结构是一种key-value的方式,因此在数据有新的字段需求的时候可以随意增加。
而传统关系型数据库则只能通过关联表的方式,通过增加外键和索引来处理新的字段,因此极为不便。 -
响应的速度
传统关系型数据库读写数据是需要考虑主键、外键和索引等因素的,随着数据的剧增其响应速度也是梯度下降的。
Hbase则不会有这样的问题,其写数据的性能和表的大小无关,并且由于其key-value的存储格式等原因,其读数据的速度也几乎不会下降。 -
良好的扩容
HBase的扩容只需要在集群上简单的增加节点。其新增节点的代价很小,HBase中增加一个节点服务器代价不高,并且由于节点很多,某个节点宕机并不会对整个集群造成巨大影响。
而传统关系型数据库只能通过升级硬件来升级服务,单台高性能的服务器价格是非常昂贵的。 -
索引的支持
传统关系型数据库则会随着数据量的增加,出现索引膨胀的问题。
HBase是不支持索引的,在降低了查询便利度的同时增加了响应性能。 -
自动分区
HBase中的数据表会自动分裂,存入合适的RegionServer上。
传统关系型数据库则需要手动操作来实现分区。
Hbase与HDFS的关系
HBase可以构建在磁盘上,也可以构建在HDFS上,构建在HDFS上是目前较广泛的用法。它与Hadoop的关系如图所示。

本文详细介绍了HBase,一个基于HDFS的分布式数据库,适用于海量数据存储。HBase与传统数据库的主要区别在于其面向列存储、数据灵活度高和快速响应。文章讨论了HBase与HDFS的关系,HBase的体系结构,包括RowKey、Column Family等概念,以及读写流程。此外,还提出了应对热点问题的调优方法,如Salting、Hashing和Reversing,并概述了HRegion Server异常数据恢复的过程。
最低0.47元/天 解锁文章
1032

被折叠的 条评论
为什么被折叠?



