MST

星途 面试题库

面试题:Hbase中HBase LSM树常用的压缩策略有哪些及其特点

请简述Hbase中HBase LSM树常用的两种压缩策略(Minor Compaction和Major Compaction),并分别说明它们的触发条件、操作内容以及对系统性能的影响。
17.8万 热度难度
数据库Hbase

知识考点

AI 面试

面试题答案

一键面试

Minor Compaction

  1. 触发条件
    • 当MemStore刷写生成的HFile达到一定数量(默认为3个)时,通常会触发Minor Compaction。不同版本或配置下该数量可能会有所调整。
  2. 操作内容
    • 选取部分较新且较小的HFile文件进行合并。它不会处理所有的HFile,而是挑选满足条件的一部分。在合并过程中,会将这些HFile中的数据按照Key排序合并成一个新的HFile。如果有相同Key的数据,新的数据会覆盖旧的数据。
  3. 对系统性能的影响
    • 读性能:Minor Compaction对读性能影响较小。因为它只合并部分HFile,不会对整个存储结构造成大的变动,所以读操作的开销增加有限。
    • 写性能:在Minor Compaction进行时,会占用一定的I/O资源用于读取和写入HFile,所以会对写性能有一定影响,但这种影响相对可控,因为它处理的数据量相对较小。

Major Compaction

  1. 触发条件
    • 手动触发:管理员可以通过命令手动执行Major Compaction。
    • 自动触发:每个Region默认每6 - 7天(可配置)会自动触发一次Major Compaction。另外,当HBase检测到某个Region的HFile数量过多、文件大小差异过大等情况时,也可能触发Major Compaction。
  2. 操作内容
    • 对一个Region下的所有HFile进行合并。将所有HFile中的数据重新排序,合并成一个大的HFile。在合并过程中,会清理掉已标记为删除的数据(墓碑数据),以及过期的版本数据。
  3. 对系统性能的影响
    • 读性能:Major Compaction完成后,读性能通常会有所提升。因为文件数量减少,数据更加有序,在读取数据时,减少了文件查找和合并的开销。
    • 写性能:Major Compaction对写性能影响较大。由于它要处理一个Region下的所有HFile,涉及大量的I/O操作,包括读取所有HFile和写入新的合并文件,会占用大量的磁盘I/O资源,从而导致写操作等待,严重时可能会造成短暂的写阻塞。