HBase:刷新后,HFile统计信息未更改

时间:2020-02-20 22:10:56

标签: hadoop hbase

我有一个HBase表'emp'。我使用hbase-shell在其中创建了一些行,其中最大的行键是123456789。 当我按照以下路径检查HBase UI(网络控制台)时:

regions -> emp,,1582232348771.4f2d545621630d98353802540fbf8b00. -> hdfs://namenode:9000/hbase/data/default/emp/4f2d545621630d98353802540fbf8b00/personal data/15a04db0d3a44d2ca7e12ab05684c876 (store file) 

我可以看到Key of biggest row: 123456789,所以一切都很好。

但是当我使用123456789删除包含行键hbase-shell的行时出现了问题。我还放入了其他一些行,然后最终刷新了表flush 'emp'

我看到生成了第二个HFile。但是第一个HFile的Key of biggest row始终是123456789

所以我非常困惑:此行不再存在于我的hbase表中,并且我已经进行了刷新(因此memstore中的所有内容都应位于HFile中)。为什么在stats中总是显示该行键?幕后发生了什么事? 以及如何更新stats

1 个答案:

答案 0 :(得分:1)

您是对的,因为memstore中的所有内容现在都在HFiles中,但是在进行压缩之前,删除的行将仍然存在,尽管已在新的第二个HFile中将其标记为删除。

如果用major_compact ‘table_name’, ‘col_fam’强制压缩,则应该看到该记录消失了(并留有一个HFile)。也许stats中有一个小错误,没有考虑已删除的记录?