MST
星途 面试题库

面试题:Hbase中HLog类日志清理策略的基本原理是什么

请阐述Hbase中HLog类日志清理策略的基本原理,包括涉及到哪些关键组件和大致流程。
37.5万 热度难度
数据库Hbase

知识考点

AI 面试

面试题答案

一键面试

基本原理

HBase 中的 HLog(Write-Ahead Log)是为了保证数据的持久性,在数据写入 MemStore 之前先写入日志。日志清理策略旨在确保日志文件不会无限增长,占用过多空间,同时保证数据的一致性和可恢复性。它基于这样一个原则:当日志文件对应的 Region 中所有数据都已经持久化到 StoreFile 时,该日志文件就可以被安全地删除。

关键组件

  1. HLog:记录所有数据写入操作,每个 RegionServer 维护一个 HLog。
  2. Region:HBase 分布式存储的基本单位,每个 Region 负责管理一部分数据。
  3. Store:每个 Region 包含多个 Store,每个 Store 对应一个列族,负责管理该列族的数据存储。
  4. StoreFile:Store 中的数据最终会持久化到 StoreFile 中,以 HFile 格式存储在 HDFS 上。
  5. WAL(Write-Ahead Log)Roller:负责滚动 HLog,即创建新的 HLog 文件并关闭旧的 HLog 文件,使得旧文件可以被清理。

大致流程

  1. 日志写入:客户端向 RegionServer 写入数据,数据首先被写入 HLog,然后写入 MemStore。
  2. MemStore 刷写:当 MemStore 达到一定阈值(如大小阈值或时间阈值),会触发刷写操作,将 MemStore 中的数据写入 StoreFile。此时,MemStore 中的数据被清空。
  3. 日志滚动:WAL Roller 会定期检查 HLog 的状态,当满足一定条件(如文件大小达到阈值或写入时间超过一定时长)时,会创建新的 HLog 文件,旧的 HLog 文件被关闭。
  4. 日志清理检查:RegionServer 会定期检查已关闭的 HLog 文件,判断这些文件对应的 Region 中的数据是否都已经持久化到 StoreFile。检查方式是对比 HLog 文件中的操作记录和 StoreFile 中的数据版本。
  5. 日志清理:如果确定某个已关闭 HLog 文件对应的 Region 数据都已持久化到 StoreFile,那么该 HLog 文件就会被删除,释放存储空间。