什么时候对旧Hfile中的行键的引用被删除或无效?

时间:2015-11-11 06:04:06

标签: hbase hdfs hfile

hbase将记录更新(对于行键RK1)写入Hfile。但是,其中一个较旧的Hfile将包含对此rowkey RK1的引用。这个RK1的旧引用如何以及何时失效?

假设有一个Hfile包含rowkey RK1的记录。 然后更新此RK1,这意味着此更新将写入新的HFile。 必须使包含RK1引用的旧Hfile无效。 如何以及何时在Hbase中完成?

感谢。

1 个答案:

答案 0 :(得分:0)

在HDFS文件中是不可变对象,因此新旧文件都将保留引用RK1。为了不在HDFS中保留大量的HFile,HBase定期进行压缩工作:将旧的小型HFile合并为新的大型HFile并删除旧的小型HFile。在文件压缩发生之前,对HFK的引用将处于HFile中。在轻微的压实过程中,没有保证只能在几个HFile上运行。主要压缩合并所有文件。要强制删除旧值,应触发主要压缩。小心主要压实,对于大桌子,它会运行几个小时。