Hbase scan does not return all rows when setting a higher value in scan.setCaching (cacheRow)

    Scan s = new Scan();
    s.addFamily(Bytes.toBytes("cf1"));
    s.setCaching(cacheRows);
    s.setCacheBlocks(false);
    s.setStartRow("30.0.2.2\01441756800\0");
    s.setStopRow("30.0.2.3\01441756800\0");

    ResultScanner scanner = table.getScanner(s);

    long rows = 0;
    try {
        for (Result rr = scanner.next(); rr != null; rr = scanner.next()) {
            rows++;
        }
    } finally {
        scanner.close();
    }

    System.out.println("Total no of rows = " + rows);

When I run over the code with cacheRows = 100 or 10000, it prints the total number of lines = 480000

When I run over the code with cacheRows = 100000, it prints the Total number of lines = 10090

cacheRows = 10083 fingerprints 480000

cacheRows = 10084 prints 191595

cacheRows = 10085 fingerprints 20169

cacheRows = 10086 fingerprints 20170

cacheRows = 10087 fingerprints 20171

cacheRows = 10088 fingerprints 20172

cacheRows = 10089 fingerprints 20173

cacheRows = 10090 prints 20174

cacheRows> = 10091 prints 10090

+4
source share
1 answer


hbase.server.scanner.max.result.size hbase.client.scanner.max.result.size hbase-site.xml
OR
, setMaxResultSize 100000 ( ), 20971520 (20 )

. : HBASE-13527

+4

Source: https://habr.com/ru/post/1607995/


All Articles