HBase架构

HBase架构

1 系统架构

HBase架构

1.1 Client

客户端,例如:发出HBase操作的请求。例如:之前我们编写的Java API代码、以及HBase shell,都是CLient

1.2 Master Server

  • 监控RegionServer

  • 处理RegionServer故障转移

  • 处理元数据的变更

  • 处理region的分配或移除

  • 在空闲时间进行数据的负载均衡

  • 通过Zookeeper发布自己的位置给客户端

1.3 Region Server

  • 处理分配给它的Region

  • 负责存储HBase的实际数据

  • 刷新缓存到HDFS

  • 维护HLog

  • 执行压缩

  • 负责处理Region分片

  • RegionServer中包含了大量丰富的组件,如下:

Write-Ahead logs

HFile(StoreFile)

Store

MemStore

Region

2 逻辑结构模型

HBase架构

2.1 Region

在HBASE中,表被划分为很多「Region」,并由Region Server提供服务

2.2 Store

Region按列蔟垂直划分为「Store」,存储在HDFS在文件中

2.3 MemStore

MemStore与缓存内存类似

当往HBase中写入数据时,首先是写入到MemStore

每个列蔟将有一个MemStore

当MemStore存储快满的时候,整个数据将写入到HDFS中的HFile中

2.4 StoreFile

每当任何数据被写入HBASE时,首先要写入MemStore

当MemStore快满时,整个排序的key-value数据将被写入HDFS中的一个新的HFile中

写入HFile的操作是连续的,速度非常快

物理上存储的是HFile

2.5 WAL

WAL全称为Write Ahead Log,它最大的作用就是 故障恢复

WAL是HBase中提供的一种高并发、持久化的日志保存与回放机制

每个业务数据的写入操作(PUT/DELETE/INCR),都会保存在WAL中

一旦服务器崩溃,通过回放WAL,就可以实现恢复崩溃之前的数据

物理上存储是Hadoop的Sequence File

上一篇:Influxdb1.5版本 占CPU高 和 内存高问题


下一篇:源码分析 | ClickHouse和他的朋友们(10)MergeTree Write-Ahead Log