hbase将记录更新(对于行键RK1)写入Hfile。但是,一个较旧的Hfile将包含对此行键RK1的引用。这个对这个RK1的旧引用是如何以及何时失效的?
假设有包含行键RK1记录的Hfile。然后更新这个RK1,这意味着这个更新被写入一个新的HFile。包含引用RK1的旧Hfile必须无效。在Hbase中,这是如何以及何时完成的?
谢谢。
发布于 2015-11-11 09:10:50
在HDFS中,文件是不可变的对象,所以旧的和新的文件都将保留一个引用RK1。为了避免在HDFS中保留大量的HFile,HBase定期执行压缩工作:将旧的小HFiles合并成新的大HFiles,删除旧的小HFile。对RK1的引用将出现在HFile中,直到对文件进行压缩。在一个小的压缩过程中,不能保证只在几个HFiles上运行。主要压缩合并所有文件。若要强制执行旧值删除,应触发重大压缩。注意主要的压缩,对于巨大的桌子它运行了几个小时。
https://stackoverflow.com/questions/33645086
复制相似问题