HBase框架学习(中)

Posted 西安优盛数据库与大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase框架学习(中)相关的知识,希望对你有一定的参考价值。



HBase的数据模型


HBase框架学习(中)

HBASE中的每一张表,就是所谓的BigTable,一张稀疏表。 RowKey 和 ColumnKey 是二进制值byte[],按字典顺序排序; Timestamp 是一个 64 位整数; value 是一个未解释的字节数组byte[]。表中的不同行可以拥有不同数量的成员。即支持“动态模式“模型。

HBase框架学习(中)

2.1
逻辑模型

   Table & Column Family

   HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family),如下图所示:

HBase框架学习(中)

      Row Key: 行键,Table的主键,Table中的记录按照Row Key排序
       Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number
       Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。


2.2
物理模型

01

物理存储表示

    将逻辑模型中的一个Row分割为根据Column family存储的物理模型,如下图所示:

HBase框架学习(中)

HBase框架学习(中)

02

Table & Region

当Table随着记录数不断增加而变大后,会逐渐分裂成多份splits,成为regions,一个region由[startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理,如下图所示:

HBase框架学习(中)


由上可知,HBase的伸缩性主要依赖于其可分裂的HRegion及可伸缩的分布式文件系统HDFS .


下面介绍一下HBase如何实现伸缩性:

HBase框架学习(中)

①HBase中数据 以HRegion为单位 进行管理,也就是说应用程序如果想要访问一个数据,必须先找到HRegion,然后将数据读写操作提交给HRegion,由HRegion完成存储层面的数据操作。


②每个HRegion中存储一段Key区间(例如:[Key1,Key2))的数据,HRegionServer是物理服务器,每个HRegionServer上可以启动多个HRegion实例。 当一个HRegion中写入的数据太多,达到配置的阀值时,HRegion会分裂成两个HRegion ,并将HRegion在整个集群中进行迁移,以使HRegionServer的负载均衡。


其具体的数据寻址访问流程如下图所示:



HBase框架学习(中)

HBase框架学习(中)

您看此文用

  HBase框架学习(中)  HBase框架学习(中)·  

秒,转发只需1秒呦~

以上是关于HBase框架学习(中)的主要内容,如果未能解决你的问题,请参考以下文章

HBase框架学习(上)

Hadoop学习笔记—15.HBase框架学习(基础知识篇)

Hadoop学习笔记—15.HBase框架学习(基础实践篇)

HBase框架学习之路

HBase框架学习之路

大数据框架小组自学(第三周)