HBase:刷新后 HFile 统计信息未更改
HBase : HFile stats not changed after flush
我有一个 HBase table 'emp'
。我使用 hbase-shell
在其中创建了一些行,其中最大的 rowkey 是 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
,所以一切都很好。
但是当我使用 hbase-shell
删除包含行键 123456789
的行时,问题就来了。我还放了一些其他行,然后最后刷新 table flush 'emp'
.
我看到生成了第二个 HFile。但是第一个HFile的Key of biggest row
总是123456789
.
所以我很困惑:这一行不再存在于我的 hbase table,而且我已经进行了刷新(所以 memstore 中的所有内容都应该在 HFile 中)。为什么在 stats
它总是显示这个 rowkey ?幕后发生了什么?
我该如何更新 stats
?
你是正确的,memstore 中的所有内容现在都在 HFiles 中,但是在压缩发生之前,删除的行将仍然存在,尽管在新的第二个 HFile 中标记为删除。
如果您使用 major_compact ‘table_name’, ‘col_fam’
强制压缩,您应该会看到这条记录消失(并留下一个 HFile)。也许 stats
中有一个小错误,它没有考虑已删除的记录?
我有一个 HBase table 'emp'
。我使用 hbase-shell
在其中创建了一些行,其中最大的 rowkey 是 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
,所以一切都很好。
但是当我使用 hbase-shell
删除包含行键 123456789
的行时,问题就来了。我还放了一些其他行,然后最后刷新 table flush 'emp'
.
我看到生成了第二个 HFile。但是第一个HFile的Key of biggest row
总是123456789
.
所以我很困惑:这一行不再存在于我的 hbase table,而且我已经进行了刷新(所以 memstore 中的所有内容都应该在 HFile 中)。为什么在 stats
它总是显示这个 rowkey ?幕后发生了什么?
我该如何更新 stats
?
你是正确的,memstore 中的所有内容现在都在 HFiles 中,但是在压缩发生之前,删除的行将仍然存在,尽管在新的第二个 HFile 中标记为删除。
如果您使用 major_compact ‘table_name’, ‘col_fam’
强制压缩,您应该会看到这条记录消失(并留下一个 HFile)。也许 stats
中有一个小错误,它没有考虑已删除的记录?