hbase将记录更新(对于行键RK1)写入Hfile。但是,其中一个较旧的Hfile将包含对此rowkey RK1的引用。这个RK1的旧引用如何以及何时失效?
假设有一个Hfile包含rowkey RK1的记录。 然后更新此RK1,这意味着此更新将写入新的HFile。 必须使包含RK1引用的旧Hfile无效。 如何以及何时在Hbase中完成?
感谢。
答案 0 :(得分:0)
在HDFS文件中是不可变对象,因此新旧文件都将保留引用RK1。为了不在HDFS中保留大量的HFile,HBase定期进行压缩工作:将旧的小型HFile合并为新的大型HFile并删除旧的小型HFile。在文件压缩发生之前,对HFK的引用将处于HFile中。在轻微的压实过程中,没有保证只能在几个HFile上运行。主要压缩合并所有文件。要强制删除旧值,应触发主要压缩。小心主要压实,对于大桌子,它会运行几个小时。