HBase pagination using Java API wrong behaviour

55 views
Skip to first unread message

David Greenshtein

unread,
Mar 4, 2015, 7:37:22 AM3/4/15
to async...@googlegroups.com
Hi, 
I'm using Hbase 0.98.4.2.2.0.0-2041-hadoop2 running on 9 nodes. My table distributed to 12 regions and contains about 113M records. 

I'm running pagination query using 

Filter pageFilter = new PageFilter(pageSize); 
Scan scan = new Scan(); 
RegexStringComparator comp = new RegexStringComparator("._1"); 
RowFilter rowFilter = new RowFilter(CompareOp.EQUAL, comp); 
FilterList filterList = new FilterList(Operator.MUST_PASS_ALL, pageFilter, rowFilter); 
scan.setFilter(filterList);


My page size is 100K, on page 30 query returns 0 results, hence I get only 3M results, but when I run query using hbase shell I get 14M. 

Here is hbase shell query: 
scan 'mgr', {COLUMNS => 'mtf:f',FILTER => org.apache.hadoop.hbase.filter.RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),RegexStringComparator.new("._1"))}

Why my pagination Java query returns less results than hbase shell query? 
Maybe I miss some configuration on client side? 

thanks. 
Reply all
Reply to author
Forward
0 new messages