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的监控、元数据的入口以及集群配置文件的维护。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MelodyYN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值