如何解决使扫描像 Get in HBase 一样工作
我只是在我现有的数据 o HBase 上编写一个简单的大数据应用程序,有时我觉得 Scan 的工作速度比 Get 快,所以我想尝试一下并将我的 Get 命令转换为精确扫描
因此,如果我有以下键并想要 Get(12)
row keys
12
123
21
22
我需要将什么作为扫描的 Startrow 和 Stoprow 或者我可能会在扫描中配置其他参数?
解决方法
如果扫描的方向是默认的(即不反转),那么通常对我有用的是将开始行设置为 12,将停止行设置为 12x,其中 x 是一些您知道的尾随特殊字符' t 出现在您的行键空间中,并且很可能在行键范围内的所有可能字符之后按字典顺序排列。例如,我通常使用“~”作为尾随符号,但也许其他的东西可能更适合您。
此外,scan 有 .setLimit(int)
参数,它可以将您的扫描限制为 1。您可以同时使用这两个元素。但是我不确定为什么这应该比 Get 更快。
如果您觉得扫描的速度比获取的快,可能与集群的呼叫队列配置有关。例如,您的集群可能配置为将更多处理程序分配给 Scans 而不是 Gets。这不是默认行为,但可能有人以这种方式对其进行了配置,如果您的集群非常繁忙,这可能就是您有这种感觉的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。