09 HBase

1 HBase简介

1.1 定义

HBase是一种分布式、可扩展、支持海量数据存储的NoSql数据库。

1.2 数据模型

与关系型数据库类似

存储再一张表中,有行有列

底层物理存储结构(K-V),更像是一个multi-dimensional map(多维映射)。

1.2.1 逻辑结构

09 HBase

1.2.2 物理存储结构

09 HBase

1.2.3 数据模型

(1) Name Space

● 命名空间,类似于关系型数据库 database 的概念。

● 自带命令空间

  ● hbase — HBase内置的表

  ● default — 用户默认使用的命令空间

 

(2) Table

● 类似于关系型数据库的表概念

● 定义表时,只需要声明列族,写入数据时字段可以动态、按需指定。

 

(3) Row

● 表中每行数据由一个RowKey和多个Column(列)组成。

● 数据按照RowKey的字典顺序存储。

 

(4) Column

● 表中每列由Column Family(列族)和Column Qualifier(列限定符)进行限定。

● 例如 info:name       info:age

● 建表时,只需指明列族,列限定符无需预先定义

 

(5) Time Stamp

● 用于标识数据的不同版本(version),值为写入HBase的事件。

 

(6) Cell

● 由 { rowkey,column Family:column Qulifier,time Stamp } 唯一确定的单元

● cell中的数据全部是字节码形式存贮。

 

1.3 基本架构

09 HBase

架构角色

Master(table+Region Server)——>Region Server(date+Region)——> Region

(1) Region Server

● 是Region的管理者,其实现类为HRegionServer

操作对象 方式
数据 get、put、detele
Region splitRegion、compactRegion

 

(2) Master

● 是Region Server的管理者,其实现类为HMaster

操作对象 方式
create、delete、
Region Server 分配Region到RegionServer中,监控RegionServer的状态,均衡负载和故障转移

(3) Zookeeper

HBase通过Zookeeper来实现

● Master的高可用

● RegionServer的监控

● 元数据的入口

● 集群配置的维护工作

(4) HDFS

为HBase提供最终的底层数据存储服务、提供高可用的支持。

 

上一篇:读书笔记


下一篇:SQL WHERE 语法