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的架构与逻辑结构模型/