HBASE进阶(1):RegionServer 架构

1 架构原理

 

 

1)StoreFile
  保存实际数据的物理文件,StoreFile 以 HFile 的形式存储在 HDFS 上。每个 Store 会有一个或多个 StoreFile(HFile),数据在每个 StoreFile 中都是有序的。
2)MemStore
  写缓存,由于 HFile 中的数据要求是有序的,所以数据是先存储在 MemStore 中,排好序后,等到达刷写时机才会刷写到 HFile,每次刷写都会形成一个新的 HFile。
3)WAL
  由于数据要经 MemStore 排序后才能刷写到 HFile,但把数据保存在内存中会有很高的概率导致数据丢失,为了解决这个问题,数据会先写在一个叫做 Write-Ahead logfile 的文件
中,然后再写入 MemStore 中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。
 

  每间隔hbase.regionserver.optionallogflushinterval(默认1s)HBase会把操作从内存写入WAL。 

  一个RegionServer上的所有Region共享一个WAL实例。

  WAL的检查间隔由hbase.regionserver.logroll.period定义,默认值为1小时。检查的内容是把当前WAL中的操作跟实际持久化到HDFS上的操作比较,看哪些操作已经被持久化了,被持久化的操作就会被移动到.oldlogs文件夹内(这个文件夹也是在HDFS上的)。一个WAL实例包含有多个WAL文件。WAL文件的最大数量通过hbase.regionserver.maxlogs(默认是32)参数来定义

4BlockCache

读缓存,每次查询出的数据会缓存在BlockCache中,方便下次查询。

 

posted @ 2020-07-30 21:18  秋华  阅读(597)  评论(0编辑  收藏  举报