HBase 定义
HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库
HBase 数据模型
- 逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列;
- 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map
数据模型
在正式学习和了解hbase之前,有必要对hbase涉及到的一些术语做深入的了解和学习;
1、Name Space
命名空间,类似于关系型数据库的 DatabBase 概念,每个命名空间下有多个表。HBase有两个自带的命名空间,分别是
hbase
和
default
,
hbase
中存放的是 HBase 内置的表,default
表是用户默认使用的命名空间
2、Region
类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明
列族
即可,不需要声明具体的列。这意味着,往 HBase 写入数据时,字段可以
动态
、
按需
指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。
3、Row
HBase 表中的每行数据都由一个
RowKey
和多个
Column
(列)组成,数据是按照 RowKey 的
字典序存储
的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重 要;
4、Column
HBase 中的每个列都由
Column Family(列族)
和
Column Qualifier(列限定符)
进行限定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义
5、Time Stamp
用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为写入 HBase 的时间。
6、Cell
由
{rowkey, column Family
:
column Qualifier, time Stamp}
唯一确定的单元。
cell
中的数据是没有类型的,全部是字节码形式存贮
HBase 逻辑结构
在了解了上述数据模型中的各种定义之后,我们对照下图就能在脑海中建立一个关于数据存储的完整印象了;
HBase 物理存储结构
HBase 基本架构
架构角色:
1、Region Server
Region Server 为 Region 的管理者,其实现类为
HRegionServer,其作用如下:
HRegionServer,其作用如下:
-
对于数据的操作:get, put, delete;
-
对于 Region 的操作:splitRegion、compactRegion;
2、Master
Master 是所有 Region Server 的管理者,其实现类为 HMaster,主要作用如下:
- 对于表的操作:create, delete, alter;
- 对于 RegionServer的操作:分配 regions到每个RegionServer,监控每个 RegionServer的状态,负载均衡和故障转移;
3、Zookeeper
HBase
通过
Zookeeper
来做
Master
的高可用、
RegionServer
的监控、元数据的入口以及集群配置的维护等工作;
4、HDFS
HDFS 为 HBase 提供最终的底层数据存储服务,同时为 HBase 提供高可用的支持
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/143267.html