加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

分布式数据库HBase的架构设计详解

发布时间:2021-01-17 08:14:52 所属栏目:电商 来源:网络整理
导读:《分布式数据库HBase的架构设计详解》要点: 本文介绍了分布式数据库HBase的架构设计详解,希望对您有用。如果有疑问,可以联系我们。 讲师介绍:陈鸿威 云财经大数据CTO 曾任百度高级工程师,现主持设计开发云财经股市情报和大数据中心; 拥有丰富的在线电商

主从架构缺点:

  1. Slave实时性的保障,对于实时性很高的场合可能需要做一些处理(在第一个购买增值服务的例子中,添加扣费记录之后,在读写分离的场景下,立马去从库查询扣费记录不一定能查到).
  2. 高可用性问题,Master就是那个致命点,容易产生单点故障.

MMM缺点:

本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量下的可用性.

分布式基础理论

1、CAP

分布式领域CAP理论

  • Consistency 一致性:数据一致更新,所有数据变动都是同步的.
  • Availability(可用性):好的响应性能.
  • Partition tolerance:分区容忍性.

2、Base

  • Basically Available:基本可用 支持分区失败.
  • Soft state 软状态:状态可以有一段时间不同步,异步.
  • Eventually consistent:最终一致性,最终数据是一致的就可以了,而不是时时一致.

3、NoSQL运动两个核心理论

  • Google的BigTable

BigTable提出了一种很有趣的数据模型,它将各列数据进行排序存储.数据值按范围分布在多台机器,数据更新操作有严格的一致性保证.

  • Amazon的Dynamo

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作为对应.

主要特点

  1. 列的可以动态增加,并且列为空就不存储数据,节省存储空间.
  2. HBase自动切分数据,使得数据存储自动具有水平scalability.
  3. HBase可以提供高并发读写操作的支持,分布式架构,读写锁等待的概率大大降低.
  4. 不能支持条件查询,只支持按照Rowkey来查询.
  5. 暂时不能支持Master server的故障切换,当Master宕机后,整个存储系统就会挂掉.

HBase底层架构

HBase是一个列式存储的数据库系统,跟所有的数据库系统一样,数据库是依赖文件系统的,在传统数据库里面我们经常提到存储引擎,例如MySQL有MyISAM/InnoDB,Oracle/SqlServer不开源,没有那么多选择,但都会有自己的存储引擎,说得通俗一点就是虚拟文件系统,HBase的文件系统是HDFS,一种分布式文件系统,所以HBase天然具备分布式的特性.同时Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制.

HBase设计要点

1、逻辑数据模型

  • Table
  • Region
  • ColumnFamily
  • Row
  • Column
  • Value
  • TimeStamp

你也可以把HBase看成一个多维度的Map模型去理解它的数据模型.正如下图.

2、HBase的体系组成

NameNode存储DataNode信息,ZooKeeper负责调度.

一个Region只会存在一台RegionServer上,一台RegionServer上可以包含多个Region.

一个逻辑的表包含多个Region,分布在各个RegionServer上,对应用程序来说只有一个大表不用管分表分库.

  • Region的定位

-ROOT-

.META

  • 存储分布

每一行包含N个列,以列的形式分布在不同Region里面.

3、HBase各对象职责

  • Client

HBase的访问接口,维护cache加快HBase的访问.

  • Zookeeper

监控Master,保证只有一个Master;

存储Region的入口地址;

监控RegionServer上下线,并告知Master;

存储Hbase shcema和Table的元数据.

  • Master

分配Region到RegionServer;

RegionSever的负载均衡;

发现失效的RegionServer并重新分配其上的Region

管理用户对Table的增删改查操作.

  • RegionServer

维护Region,处理对这些Region的IO;

Split&Compact.

4、应用方式

HBase是三维有序存储的,通过RowKey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据进行快速定位.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读