【发布时间】:2015-04-19 05:54:46
【问题描述】:
我正在尝试使用 HBase 表中的前缀过滤器扫描一些行。我在 HBase 0.96 上。
我想增加每个 RPC 调用的吞吐量,以减少访问该区域的请求数。
我在扫描对象上尝试了 getCaching(int) 和 setCacheBlocks(true)。我还尝试添加 resultScanner.next(int)。使用所有这些组合我仍然无法减少 RPC 调用的数量。我仍在为每个键访问 HBase 区域,而不是为每个 RPC 调用带来多个键。
HBase 区域服务器/Datanode 分配了足够的 CPU 和内存。此外,我的数据均匀分布在不同的区域服务器上。此外,我每个键带回的数据也不多。
我观察到,当我向表中添加更多数据时,请求所需的时间会增加。当请求数量增加时,它也会增加。
感谢您的帮助。
R
【问题讨论】:
-
你能给你看一些代码吗?特别是前缀过滤器
-
这里是部分过滤器 ArrayList
filters = new ArrayList (); for(String flag : periodFlags) { byte[] prefix = Bytes.toBytes(key1 + "" + key2 + ""); filters.add(new PrefixFilter(prefix)); } FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ONE, filters);扫描标准 = 新扫描(Bytes.toBytes(key1 + "_")); criteria.setFilter(filterList);