2010-05-04 42 views

回答

10

我相信扫描仪只会实际上一次请求一个项目,除非您设置了缓存。您可以使用getCaching()来检查,以确保每次调用ResultScanner#next()时,它都会检索下一个项目。您也可以使用ResultScanner#next(int)来一次检索多个结果。

当设置您可以使用扫描#setCaching提前检索结果扫描器 http://hadoop.apache.org/hbase/docs/r0.20.4/api/org/apache/hadoop/hbase/client/Scan.html#setCaching(int)

的机会是你的扫描仪是缓慢的,因为你只是读取一条记录时间(包括所有回以及RPC协议和其他)。所以如果你打算大量阅读,请让系统提前为你缓存一些结果。

0

您可以使用scan.setMaxResultSize来控制每次从HBase检索到的记录。 (这并不意味着,你从中得到的查询更少结果)

如果要限制像SQL select top 100 from TABLE; 结果你需要使用一个PageFilter^_^