HBase FuzzyRowFilter игнорирует начало / конец сканирования строк - PullRequest
0 голосов
/ 06 апреля 2019

Я столкнулся с этой странной проблемой при запуске некоторого тестового кода в развертывании HBase на основе Cloudera.Предположим, это мои ключи строк (упрощенная версия моей фактической структуры ключей строк):

a_1
a_2
a_3
b_1
b_2
b_3
c_1
c_2
c_3

И я запускаю сканирование с помощью start, stop = b_2, c_2 (исключая), я получаю строки:

b_2
b_3
c_1

Когда я добавляю нечеткий фильтр для "? _2", сохраняя тот же старт-стоп, он, похоже, игнорирует старт-стоп и возвращает следующие строки:

a_2
b_2
c_2

, тогда как я быожидайте:

b_2

, так как a_2 и c_2 находятся вне моего диапазона сканирования.

Теперь, когда это становится интересным, я установил отдельную псевдораспределенную HBase v 2.0.4 на моемПК и в этой настройке работает как положеноЕдинственные различия - это версия HBase и моя установка не работает на кластере.

Поэтому я пытаюсь выяснить, почему это происходит, и у меня есть несколько вопросов:

  • AmЯ ошибаюсь, полагая, что FuzzyRowFilter должен учитывать строки start-stop?
  • Может ли это быть просто ошибкой в ​​моей версии кластера HBase?(Cloudera)
  • Может ли быть так, что FuzzyRowFilter запускался как полное сканирование таблицы, а более поздние версии развивали его, чтобы использовать диапазон?Обратите внимание, что я искал подсказку в HBase Jira, но не смог найти проблему по этому поводу.Также я не смог найти ни одного модульного теста для FuzzyRowFilter, который проверял бы правильность диапазона.Все тестовые случаи имеют полные Scan () без диапазона.
  • Может ли это произойти в результате какой-то сложности развертывания кластера, о которой я не знаю.(Я так не думаю, но ..)

Спасибо.

1 Ответ

0 голосов
/ 17 апреля 2019

Не совсем ответ, но я развернул HBase 2.0.2 в своей среде, и теперь он работает. Я действительно хотел бы узнать, что происходит, но я не смог. Возможно, это была несовместимая проблема версии сервера-клиента, вызванная устаревшими сборками, так как в то время я работал с несколькими версиями. По крайней мере, я прочитал достаточно кода HBase, чтобы ответить на один из моих первоначальных вопросов, фильтры должны учитывать строки начала и окончания сканирования.

...