HBase 基础架构

1. 逻辑结构

1.1. 列与列族

将列按照不同分类,存储在不同文件夹里

1.2. RowKey(行键)与 Region(行切片)

  1. RowKey 按照字典序排序
  2. 每个 Region 都有 StartRowKey 和 StopRowKey ,用来表示 Region 存储的 RowKey 的范围

1.3. store

真正的存储内容

2. 物理结构

2.1. store

每一列单独存储,如下表

字段 描述
Row Key 记录该行数据的行键
Column Famliy 记录所属列族
Column Qualifier 记录列名
Timestamp 记录数据操作动作的执行时间,做为版本号来识别新旧数据
Type 记录数据操作动作,记录数据状态,如PUT,DELETE等
value 记录数据值

3. 数据模型

3.1. name space

类似于数据库,默认自带有两个hbasedefault,前者存放HBase的元数据,后者是默认使用的命名空间

3.2. Region

类似于数据库的表,定义时只需要声明列族,因为列会动态、按需指定

3.3. Row

数据存储和检索,都按照 RowKey 字典序

3.4. Column

每个列由列族(Column Famliy)和列名(Column Qualifier)限定,例如:info:name,info:age

3.5. TimeStamp

用于标识数据的不同版本,识别数据的状态

3.5. Cell

由{RowKe,Column Famliy:Column Qualifier,TimeStamp}唯一确定的单元,存储的是字节码

4. 读写流程

4.1. 写流程

写流程

4.2. 读流程

读流程