使用 HBase API 改进了 HBase 数据访问性能



我正在尝试使用 HBase 表中的前缀过滤器扫描一些行。我在 HBase 0.96 上。

我想增加每个 RPC 调用的吞吐量,以减少到达该区域的请求数。

我尝试在扫描对象上获取缓存(int)和setCacheBlocks(true)。我还尝试添加resultScanner.next(int)。使用所有这些组合,我仍然无法减少 RPC 调用的数量。我仍然为每个密钥点击 HBase 区域,而不是为每个 RPC 调用带来多个密钥。

HBase 区域服务器/数据节点分配了足够的 CPU 和内存。此外,我的数据均匀分布在不同的区域服务器上。此外,我每个键带回的数据也不是很多。

我观察到,当我向表中添加更多数据时,请求所需的时间会增加。当请求数增加时,它也会增加。

谢谢你的帮助。

R

前缀筛选器通常是性能杀手,因为它们执行全表扫描,在扫描中始终使用开始和停止行,而不是前缀筛选器。

Scan scan = new Scan(Bytes.toBytes("prefix"),Bytes.toBytes("prefix~"));

ResultScanner迭代Result时,每次迭代都是一次RPC调用,可以调用resultScanner.next(n)一次性获取一批结果。

最新更新