2010-05-04 75 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^_^