我有两种方式扫描HBase的表通过Java程序。 之一,从DF-E0,和从{DF-DF4,DF4-DF8,DF8-DFC,DFC-E0}其他。这些结果都应该是一样的,但我在以前的方式(DF-E0)获得额外的行。另外,我得到两个通道中的多个版本(相同keyrow,但不同的时间戳)。
我有开始和结束的行参数扫描的HBase的代码下面给出:
int count = 0;
scan = new Scan(Bytes.toBytes(start), Bytes.toBytes(end));
scanner = keywordHBaseConnection.getKeywordMetaDataTable().getScanner(scan);
for (Result result = scanner.next(); result != null; result = scanner.next()) {
count++;
}
我与{开始结束} = {DF-E0}试了一下。而在其他的方式,我用{开始结束} = {DF-DF4,DF4,DF8,DF8-DFC,DFC-E0},这是前一个的子集,试了一下。其输出应该是完全一样的,但事实并非如此。有结果中的两个问题 - 1.在前者的方式,也有更多的结果行。 2.存在重复rowkeys(多个版本,我认为)的两种方式。 (这不应该是这样的BCZ构造扫描()已经将最大的版本限制为一个)。
尝试迫使特定的版本,如:
scan.setMaxVersions(1);
这仍然是可行的版本1.2.x的,或者你可以尝试使用:
scan.readVersions(1);
对于2.X客户端