文章目录
系统架构
-
Client
客户端,例如:发出HBase操作的请求。例如:之前我们编写的Java API代码、以及HBase shell,都是CLient -
Master Server
在HBase的Web UI中,可以查看到Master的位置。
- 通过Zookeeper发布自己的位置信息给客户端
- 监控RegionServer
- 处理RegionServer故障转移
- 处理Region的分配或移除
- 处理元数据
- 在空闲时间进行数据的负载均衡
- Region Server
- 处理HMaster分配给它的Region
- 负责存储HBase的实际数据
- 刷新缓存到HDFS
- 维护HLog
- 执行压缩
- 负责处理Region分片
- RegionServer中包含了大量丰富的组件,如下:
Write-Ahead logs(预写)
StoreFile(HFile)
Store
MemStore(写缓存)
Region
BlockCache(读缓存)
ReginServer结构模型
- Region
在HBASE中,表被划分为很多「Region」,并由Region Server提供服务:
- Store
Region按列簇垂直划分为「Store」,存储在HDFS在文件中 - MemStore
- MemStore与缓存内存类似
- 当往HBase中写入数据时,首先是写入到MemStore
- 每个列蔟将有一个MemStore
- 当MemStore存储快满的时候,整个数据将写入到HDFS中的HFile中
- StoreFile
- 每当任何数据被写入HBASE时,首先要写入MemStore
- 当MemStore快满时,整个排序的key-value数据将被写入HDFS中的一个新的HFile中
- 写入HFile的操作是连续的,速度非常快
- 物理上存储的是HFile
- WAL
- WAL全称为Write Ahead Log,它最大的作用就是 故障恢复
- WAL是HBase中提供的一种高并发、持久化的日志保存与回放机制
- 每个业务数据的写入操作(PUT/DELETE/INCR),都会保存在WAL中
- 一旦服务器崩溃,通过回放WAL,就可以实现恢复崩溃之前的数据
- 物理上存储是Hadoop的Sequence File