hbase存储模块
region是存储用户数据的最小单元,一个regionServer可以包含多个region
一个表里有多少列族就会有多少store
数据会最先存储在hlog中,保证系统的高可用,如果有宕机,就可以将hlog中的数据刷写出来防止数据丢失
存储设计hbase
thbase存储结构图,详细
HLog 预存WAL
MemStore内存缓冲区 每个Store内都包含一个Store。有几个列族就有几个Store.
数据流向 数据-》MemStore-》StoreFile-》Hfile-》HDFS 的HFIle
Region存储最小单元
RegionServer包含很多Region
Hbase数据存储模块
HBase数据存储模块
RegionServer=Region+Store+MemStore+StoreFile+HFile+HLog
Region:存储用户数据的最小单元,一个RegionServer包含多个Region,每个Region包含的数据都是互斥的,存储用户各个行的数据
Store:对应HBase表的列族,HBase表有多少列族,RegionServer中对应就有多少Store,每个Store对应一个MemStore
MemStore:Store的内存缓冲,是内存式的数据结构,用户数据进入Region后首先刷写到MemStore
StoreFile:MemStore满了之后数据刷写到StoreFile,StoreFile是HFile的简单封装
HFile:多个StoreFile可以封装成HFile,最后刷写到HDFS,是HBase存储数据文件的组织形式,是所保存的HBase表中的数据最终的存储形式,简单说所有数据都保存在HFile中
HLog:Log用于实现WAL预写日志,用户存储的日志最先保存在此处,目的是实现高可用,在系统宕机或挂掉时回放日志,恢复到原始的状态,一个RegionServer对应只有一个HLog实例,是唯一的
HLog+MemStore组合成Level0:保证数据可以快速写入,降低存储延时,如果没有这一层,HBase中所有用户数据都需要写入到HDFS,这种明显的高延时无法实现实时交互性能
StoreFile+HFile组合成Level1:实现不可靠数据的持久化,真正将HBase变成了高可用的数据库系统
HBase数据存储模块介绍
HBase