HBase框架学习(中)
Posted 西安优盛数据库与大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase框架学习(中)相关的知识,希望对你有一定的参考价值。
■ HBASE中的每一张表,就是所谓的BigTable,一张稀疏表。 RowKey 和 ColumnKey 是二进制值byte[],按字典顺序排序; Timestamp 是一个 64 位整数; value 是一个未解释的字节数组byte[]。表中的不同行可以拥有不同数量的成员。即支持“动态模式“模型。
Table & Column Family
HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family),如下图所示:
Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number
Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。
01
物理存储表示
将逻辑模型中的一个Row分割为根据Column family存储的物理模型,如下图所示:
02
Table & Region
当Table随着记录数不断增加而变大后,会逐渐分裂成多份splits,成为regions,一个region由[startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理,如下图所示:
由上可知,HBase的伸缩性主要依赖于其可分裂的HRegion及可伸缩的分布式文件系统HDFS .
下面介绍一下HBase如何实现伸缩性:
①HBase中数据 以HRegion为单位 进行管理,也就是说应用程序如果想要访问一个数据,必须先找到HRegion,然后将数据读写操作提交给HRegion,由HRegion完成存储层面的数据操作。
②每个HRegion中存储一段Key区间(例如:[Key1,Key2))的数据,HRegionServer是物理服务器,每个HRegionServer上可以启动多个HRegion实例。 当一个HRegion中写入的数据太多,达到配置的阀值时,HRegion会分裂成两个HRegion ,并将HRegion在整个集群中进行迁移,以使HRegionServer的负载均衡。
其具体的数据寻址访问流程如下图所示:
您看此文用
秒,转发只需1秒呦~
以上是关于HBase框架学习(中)的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop学习笔记—15.HBase框架学习(基础知识篇)