HBase: статистика HFile не изменяется после сброса - PullRequest
1 голос
/ 21 февраля 2020

У меня есть таблица 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. Я также поместил некоторые другие строки, затем, наконец, flu sh таблица flush 'emp'.

Я вижу, что сгенерирован второй HFile. Но Key of biggest row первого HFile всегда 123456789.

Так что я очень запутался: этой строки больше нет в моей таблице hbase, и я уже сделал грипп sh (так что все в memstore должен быть в HFile). Почему в stats всегда отображается этот ключ? Что происходит за кулисами? И как мне обновить stats?

1 Ответ

1 голос
/ 21 февраля 2020

Вы правы в том, что все в memstore теперь находится в HFiles, но пока не произойдет сжатие, удаленная строка все еще будет существовать, хотя и будет помечена для удаления в новом, втором HFile.

Если вы принудительное сжатие с major_compact ‘table_name’, ‘col_fam’, вы должны увидеть, как эта запись исчезнет (и останется с одним HFile). Может быть, в stats есть небольшая ошибка, которая не учитывает удаленные записи?

...