2016-04-13 11 views
1

Es gibt nur wenige Verfahren resultieren aus Scan-Verfahren auf hbase zu begrenzen FilterLimit-Befehl auf HBase Java

FilterList filterList = new FilterList(new PageFilter(limit)); 
scan.setFilter(filterList); 

oder mit setBatch

scan.setBatch(limit); 
scan.next(); 

mit Was ich fragen wollen, sind:

  1. Welcher Fall ist in welchem ​​Szenario besser zu verwenden?
  2. Welcher gibt bessere Leistung?
  3. Gibt es eine bessere Möglichkeit, Limit zu verwenden?

Ich verwende hbase Client api 1.0.0 und 1.0.0 HBase-cdh5.6.0

+0

Werfen Sie einen Blick auf: http://stackoverflow.com/questions/28456876/hbase-scan-operation-caching. Auch [Scan.html # setMaxResultSize (lang)] (http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.6-cdh5.3.3/apidocs/org/apache/hadoop/hbase/client/ Scan.html # setMaxResultSize (lang)) – Shyam

+0

Ich mache einen einfachen Test und bei weitem setMaxResultSize ist das Schlimmste. –

+0

Autsch! Welche Version von HBase verwenden Sie? Gehen Sie beim Lesen von HBase durch den Cloudera [docs] (http://www.cloudera.com/documentation/enterprise/5-3-x/topics/admin_hbase_scanning.html). Ein Auszug daraus: * "Wenn Sie setCaching und setMaxResultSize zusammen verwenden, werden einzelne Serveranforderungen entweder durch die Anzahl der Zeilen oder die maximale Ergebnisgröße begrenzt, je nachdem, welches Limit zuerst kommt." * – Shyam

Antwort

0

ich mit setBatch gehen würde, aufgrund dass es vordefinierte, aber es kann Lag Probleme verursachen.