使扫描像 Get in HBase 一样工作

making scan works like Get in HBase

我只是在现有的 HBase 数据上编写一个简单的大数据应用程序,有时我觉得 Scan 可以比一个 Get 更快,所以我想试验一下并将我的 Get 命令转换为精确的扫描

因此,如果我有以下键并想获取 (12)

row keys
12
123
21
22

我需要将什么作为扫描的开始行和停止行,或者我可以在扫描中配置其他参数?

如果扫描方向是默认的(即不反转),那么通常对我有用的是将起始行设置为 12,将停止行设置为 12x,其中 x 是您知道的尾随特殊字符不会出现在您的行键 space 中,并且很可能会在您的行键范围内所有可能的字符之后按字典顺序排列。例如,我通常使用“~”作为尾随符号,但也许其他东西可能更适合你。

此外,scan 具有 .setLimit(int) 参数,可以将您的扫描限制为 1。您可以同时使用这两个元素。但是我不确定为什么这应该比 Get 更快。

如果您觉得扫描速度比获取速度快,可能与集群的调用队列配置有关。例如,您的集群可能配置为将更多处理程序分配给扫描而​​不是获取。这不是默认行为,但可能有人以这种方式配置了它,如果您的集群非常繁忙,也许这就是您有这种感觉的原因。