hbase将记录更新(对于行键rk1)写入hfile。但是,其中一个较旧的hfile将包含对此rowkey rk1的引用。如何以及何时该rk1的旧引用失效?假设有一个hfile包含rowkey rk1的记录。然后这个rk1被更新,这意味着这个更新被写入一个新的hfile。包含rk1引用的旧hfile必须无效。如何以及何时在hbase中完成此操作?谢谢。
lpwwtiir1#
在hdfs中,文件是不可变的对象,因此新旧文件都将保留一个引用rk1。为了不在hdfs中保留大量的hfile,hbase定期执行压缩工作:将旧的小hfile合并成新的大hfile并删除旧的小hfile。rk1的引用将在hfile中,直到使用文件进行压缩。在小型压实过程中,仅在几个hfiles上运行,对此没有任何保证。主文件夹合并所有文件。要强制删除旧值,您应该触发主要压缩。要小心的主要压实,因为巨大的表运行了几个小时。
1条答案
按热度按时间lpwwtiir1#
在hdfs中,文件是不可变的对象,因此新旧文件都将保留一个引用rk1。为了不在hdfs中保留大量的hfile,hbase定期执行压缩工作:将旧的小hfile合并成新的大hfile并删除旧的小hfile。rk1的引用将在hfile中,直到使用文件进行压缩。在小型压实过程中,仅在几个hfiles上运行,对此没有任何保证。主文件夹合并所有文件。要强制删除旧值,您应该触发主要压缩。要小心的主要压实,因为巨大的表运行了几个小时。