在基于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版本和我的安装不在群集上工作。
所以我想找到为什么会这样,我有几个问题:
谢谢。
不完全是答案,但我将HBase 2.0.2部署到我的环境中,现在可以使用了。我真的希望我能找到发生的事情,但我不能。也许是由于陈旧的构建引起的服务器 - 客户端版本问题不匹配,因为我当时正在使用多个版本。至少我读了足够的HBase代码来回答我的一个原始问题,过滤器应该尊重扫描开始 - 停止行。