HBase学习笔记-高级(1)-HBase的架构与逻辑结构模型

系统架构

HBase集群是一种主从架构的设计,其中有三类角色:Client、Master Server以及Region Server

Client:客户端发出对HBase的操作请求,例如HBase Shell、编写的Java代码都属于客户端

Master Server: Master Server是所有Region Server的管理者,不负责管理用户数据表。

  • 监控Region Server
  • 处理Region Server的故障转移
  • 处理元数据的变更
  • 处理Region的分配或者移除
  • 在空闲时间进行数据的负载均衡
  • 通过Zookeeper来发布自己的位置给客户端

Region Server: Region是用户数据表的实际管理者

  • 处理分配给它的Region
  • 负责存储HBase的实际数据
  • 刷新缓存到HDFS文件系统中
  • 执行压缩
  • 负责处理Region分片

在Region Server中包含了许多组件,包括:WAL、StoreFile(HFile)、Store、MemStore、Region等。这些也是在HBase中重要的逻辑结构模型。

逻辑结构模型

HBase中用户数据存储在Region Server中,一个Region Server存放的内容可以表示如下:

  • Region:在HBase中,一张表会被划分成多个Region,并由Region Server提供存储服务
    • 回应HBase的特点,原生支持分布式存储
    • 每个Region保存一定行键范围的数据,Region中的数据有序,按照行键的字典序来进行排列
  • Store:每一个Region又会按照列族垂直划分成Store
  • MemStore:为Store提供的缓存区域
    • 向HBase中写入数据时,都是先向MemStore中写入,提高读写速度
    • 当MemStore存储将要满的时候,整个线程写入到HDFS的HFile中,写入之前会按照行键排序
    • 每个列族有一个MemStore
  • StoreFile: Store的存储文件
    • 一个Store最终可能存储为多个StoreFile
    • 物理存储为HFile(概念上的对应 HDFS <-> HFile ,HBase <-> StoreFile)
    • 写入操作是连续写入的,写入的是按照行键排序的键值对数据,写入速度非常快
  • WAL: Write Ahead Log, 预写日志,用于故障恢复
    • WAL是HBase中提供的一种高并发、持久化的日志保存与回放机制
    • 在执行操作命令之前(例如put、delete、incr等),会将这个命令保存在WAL中
    • 写入WAL之后,再去执行对应操作
    • 一旦服务器崩溃,可以通过回放WAL来实现恢复崩溃之前的数据
    • 物理上的存储是Hadoop的Sequence File

逻辑结构模型可以简单总结如下:

对于一张表,会按照行键横向划分成多个Region,每个Region按照列族纵向划分成多个Store。每个Store,最终的存储形式为StoreFile,物理存储为HDFS中的HFile。在执行操作之前,会将操作记录在WAL中,用于故障恢复。之后执行写入操作,数据写入HBase之前,首先需要写入对应的MenStore,当快要写满之后再持久化到文件中。写入文件之前需要对数据按照行键进行排序,之后再写入。


HBase学习笔记-高级(1)-HBase的架构与逻辑结构模型
http://example.com/2022/04/18/HBase学习笔记-高级-1-HBase的架构与逻辑结构模型/
作者
EverNorif
发布于
2022年4月18日
许可协议