HBase FuzzyRowFilter忽略扫描开始/停止行

问题描述 投票:0回答:1

在基于Cloudera的HBase部署上运行一些测试代码时,我遇到了这个奇怪的问题。假设这些是我的行键(我的实际行键结构的简化版本):

a_1
a_2
a_3
b_1
b_2
b_3
c_1
c_2
c_3

我用start,stop = b_2,c_2(exlusive)运行扫描,我得到了行:

b_2
b_3
c_1

当我为“?_2”添加模糊过滤器保持相同的开始 - 停止时,它似乎忽略了开始 - 停止并返回这些行:

a_2
b_2
c_2

而我希望:

b_2

因为a_2和c_2超出了我的扫描范围。

现在这是它变得有趣的地方,我在我的PC上安装了一个单独的伪分布式HBase v 2.0.4,在这个设置中它按预期工作!唯一的区别是HBase版本和我的安装不在群集上工作。

所以我想找到为什么会这样,我有几个问题:

  • 假设FuzzyRowFilter应该尊重起止行,我错了吗?
  • 它可能只是我的集群HBase版本中的一个错误吗? (Cloudera的)
  • 可能是FuzzyRowFilter是作为全表扫描启动的吗?后来的版本进化到了使用范围?请注意,我在HBase Jira中搜索了一条线索,但未找到相关问题。我也找不到任何用于检查范围正确性的FuzzyRowFilter的单元测试用例。测试用例都具有完整的Scan(),没有范围。
  • 可能是由于我不知道的一些集群部署复杂性而发生的。 (我不这么认为,但是..)

谢谢。

hbase cloudera
1个回答
0
投票

不完全是答案,但我将HBase 2.0.2部署到我的环境中,现在可以使用了。我真的希望我能找到发生的事情,但我不能。也许是由于陈旧的构建引起的服务器 - 客户端版本问题不匹配,因为我当时正在使用多个版本。至少我读了足够的HBase代码来回答我的一个原始问题,过滤器应该尊重扫描开始 - 停止行。

© www.soinside.com 2019 - 2024. All rights reserved.