你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

HBase是什么

2022-1-4 19:40:22

文章目录

  • HBase是什么
    • 1、非关系型数据库与关系型数据库的对比
    • 2、HBase逻辑存储结构
    • 3、HBase物理存储结构
    • 4、数据模型
    • 5、HBase基本架构

HBase是什么

HBase(Hadoop DataBase)是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。

  • 分布式:通过zookeeper进行管理,提供高可用;
  • 可扩展:HBase基于HDFS,因此继承了HDFS的可扩展性;
  • 支持海量存储:这也是(HDFS)可扩展性带来的;

1、非关系型数据库与关系型数据库的对比

Mysql是典型的关系型数据库,通过行列规整的存放在系统中,一次增加一整行或者删除一整行。

非关系型数据库,直接针对于一个字段。通过KV对的形式,直接对指定字段的值进行操作。其中K为ROWKEY,全局唯一。V为字段的值。

以上为个人直观理解比较浅显,下面对HBase的逻辑结构进行详细说明。

和关系型数据库相比,HBase能够轻松应对字段变更的场景(下面有说明)。

2、HBase逻辑存储结构

在这里插入图片描述

HBase逻辑结构主要由列族,列,RowKey,Region和Store等组成。它们之间的关系如下:

列族是对多个列的整体统称,因此与列族之间是属于的关系,一个列只能属于一个列族。

RowKey是全局唯一,相当于主键。

Store是多条数据(RowKey)的一个列族的数据构成。

Region是多条数据(RowKey)的所有列族的数据构成。或者多条数据(RowKey)的多个Store组成。

3、HBase物理存储结构

在这里插入图片描述

4、数据模型

  • Name Space

    类似于Mysql中的database,其中可以包含多张表。HBase两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default表是用户默认使用的命名空间。

  • Table

    HBase定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往HBase写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。

  • Row

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

  • Column

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

  • Time Stamp

    用于标识数据的不同版本。

  • Cell

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

5、HBase基本架构

在这里插入图片描述

  • Region Server

    是Region的管理者,其实现类为HRegionServer。主要作用:对数据进行get、put、delete;对Region进行splitRegion、compactRegion。

  • Master

    是所有RegionServer的管理者,其实现类为HMaster。主要作用:对表进行create、delete、

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

  • Zookeeper

    实现HBase的高可用,RegionServer的监控、元数据的入口以及集群配置文件的维护。