分布式数据库HBase的架构设计详解(2)
主从架构缺点:
MMM缺点: 本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量下的可用性. 分布式基础理论1、CAP分布式领域CAP理论
2、Base
3、NoSQL运动两个核心理论
BigTable提出了一种很有趣的数据模型,它将各列数据进行排序存储.数据值按范围分布在多台机器,数据更新操作有严格的一致性保证.
Dynamo使用的是另外一种分布式模型.Dynamo的模型更简单,它将数据按key进行hash存储.其数据分片模型有比较强的容灾性,因此它实现的是相对松散的弱一致性:最终一致性. HBase特征HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用ZooKeeper作为对应. 主要特点
HBase底层架构HBase是一个列式存储的数据库系统,跟所有的数据库系统一样,数据库是依赖文件系统的,在传统数据库里面我们经常提到存储引擎,例如MySQL有MyISAM/InnoDB,Oracle/SqlServer不开源,没有那么多选择,但都会有自己的存储引擎,说得通俗一点就是虚拟文件系统,HBase的文件系统是HDFS,一种分布式文件系统,所以HBase天然具备分布式的特性.同时Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制. HBase设计要点1、逻辑数据模型
你也可以把HBase看成一个多维度的Map模型去理解它的数据模型.正如下图. 2、HBase的体系组成NameNode存储DataNode信息,ZooKeeper负责调度. 一个Region只会存在一台RegionServer上,一台RegionServer上可以包含多个Region. 一个逻辑的表包含多个Region,分布在各个RegionServer上,对应用程序来说只有一个大表不用管分表分库.
-ROOT- .META
每一行包含N个列,以列的形式分布在不同Region里面. 3、HBase各对象职责
HBase的访问接口,维护cache加快HBase的访问.
监控Master,保证只有一个Master; 存储Region的入口地址; 监控RegionServer上下线,并告知Master; 存储Hbase shcema和Table的元数据.
分配Region到RegionServer; RegionSever的负载均衡; 发现失效的RegionServer并重新分配其上的Region 管理用户对Table的增删改查操作.
维护Region,处理对这些Region的IO; Split&Compact. 4、应用方式HBase是三维有序存储的,通过RowKey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据进行快速定位. (编辑:ASP站长网) |