Я столкнулся с этой странной проблемой при запуске некоторого тестового кода в развертывании 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 () без диапазона.
- Может ли это произойти в результате какой-то сложности развертывания кластера, о которой я не знаю.(Я так не думаю, но ..)
Спасибо.