HBase 分布式数据库

HBase 用来做什么

HBase是用来提供高可靠性、高性能、列存储、可伸缩、多版本的NoSql的分布式数据存储系统,实现对大型数据的实时随机的读写访问
NoSql是Not Only SQL 的缩写,意既不仅仅是SQl的意思,泛指非关系型的数据库,是一项全新的数据库革命性运动,提倡运用非关系型的数据存储,这一概念是一种全新的思维的注入。

HBase的特点

1、容量大
HBase单表可以有上百亿行、百万列,数据矩阵横向和
纵向两个维度所支持的数据量级都非常具有弹性。
2、面向列
HBase是面向列的存储和权限控制,并支持独立检索。
列式存储,其数据在表中是按照某列存储的,这样在查询只
需要少数几个字段的时候,能大大减少读取的数据量。
3、多版本
HBase每一个列的数据存储有多个Version(version)。
4、稀疏性
为空的列并不占用存储空间,表可以设计的非常稀疏。
5、扩展性
Hbase为主从架构,底层依赖于HDFS,可横向扩展。
6、高可靠性
WAL机制保证了数据写入时不会因集群异常而导致写入
数据丢失:Replication机制保证了在集群出现严重的问题时,
数据不会发生丢失或损坏。而且HBase底层使用HDFS,HDFS本
身也有备份。
7、高性能
底层的LSM数据结构和Rowkey有序排列等架构上的独特
设计,使得HBase具有非常高的写入性能。region切分、主键索
引和缓存机制使得HBase在海量数据下具备一定的随机读取性
能,该性能针对Rowkey的查询能够达到毫秒级别。

HBase与传统数据库的对比

1、传统数据库遇到的问题:
数据量很大的时候无法存储;
没有很好的备份机制;
数据达到一定数量开始缓慢,很大的话基本无法支撑;
2、HBase优势:
线性扩展,随着数据量增多可以通过节点扩展进行支撑;
数据存储在hdfs上,备份机制健全;
通过zookeeper协调查找数据,访问速度快。

HBase读过程

1.Client访问Zookeeper,查找-ROOT-表,获取.META.表信息;
2.从.META.表查找,获取存放目标数据的Region信息,从而找到对
应的RegionServer;
3.通过RegionServer获取需要查找的数据;
4.RegionServer的内存分为MemStore和BlockCache(缓存)两部分,
MemStore主要用于写数据,BlockCache主要用于读数据。读请求
先到MemStore中查数据,查不到就到BlockCache中查,再查不到
就会到StoreFile上读,并把读的结果放入BlockCache。

猜你喜欢

转载自blog.csdn.net/Fang_XB/article/details/85201035