Hbase 简介

HBase 定义

HBase 是一种分布式可扩展、支持海量数据存储NoSQL 数据库

HBase 数据模型

逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。
但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map

HBase 逻辑结构

mark

HBase 物理存储结构

mark

数据模型

0x01 Name Space

命名空间,类似于关系型数据库的 DatabBase 概念,每个命名空间下有多个表。HBase
有两个自带的命名空间,分别是 hbasedefaulthbase 中存放的是 HBase 内置的表

0x02 Region

类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需
要声明具体的列。这意味着,往 HBase 写入数据时,字段可以动态、按需指定。因此,和关

0x03 Row

HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照RowKey 的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重

0x04 Column

HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。

0x05 Time Stamp

用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会

0x06 Cell

由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell 中的数 据是没有类型的,全部是字节码形式存贮。

HBase 基本架构

HBase 内置 Zookeeper ,所以是自带高可用,但是实际操作,不会用内置的 Zookeeper

mark

架构角色

Region Server

  • Region ServerRegion 的管理者

  • 其实现类为 HRegionServer

  • 主要作用如下:

    • 对于数据的操作:get, put, delete;
    • 对于Region的操作:splitRegion、compactRegion。`

Master

  • Master 是所有 Region Server 的管理者

  • 其实现类为 HMaster

  • 主要作用如下:

    • 对于的操作:create, delete, alter
    • 对于 RegionServer的操作:分配 regions到每个RegionServer,监控每个 RegionServer 的状态,负载均衡和故障转移。

Zookeeper

HBase 通过 Zookeeper 来做 Master 的高可用、RegionServer 的监控、元数据的入口以及 集群配置的维护等工作。

HDFS

HDFS 为 HBase 提供最终的底层数据存储服务,同时为 HBase 提供高可用的支持。

发表评论 / Comment

用心评论~