RegionServer
RegionServer组件主要分为4部分:
- WAL: HDFS上日志文件,存储还未持久化到HFile的数据,以及MemStore的恢复,每个RegionServer有一个WAL,被所有Region共享;
- BlockCache: 读缓存,存储被打开的HFile的索引结构,使用LRU策略;
- MemStore: 写缓存,存储还未持久化到HFile的最新写数据,每个Region的CF对应一个MemStore;
- HFile:MemStore的持久化存储;
MemStore
在内存中存储了每个CF的最新值,结构如下所示:
HFile
刷盘策略
当MemStore的容量达到设定阈值后,会被持久化到HFile,由于顺序写,因此速度会很快,如下图所示:
文件结构
HFile文件结构如下方左图所示,为了提升查询数据的速度,创建了多级索引,以类似B+树的形式组织,如下方右图所示:
与BlockCache关系
当HFile被打开后其索引结构会被缓存到BlockCache中,方便后续的查询,如下图所示:
参考: