scanner.addScanIterator(setting); iterator = this.scanner.iterator();
MetaDataTableScanner(ClientContext context, Range range, CurrentState state, String tableName) { // scan over metadata table, looking for tablets in the wrong state based on the live servers // and online tables try { mdScanner = context.createBatchScanner(tableName, Authorizations.EMPTY, 8); configureScanner(mdScanner, state); mdScanner.setRanges(Collections.singletonList(range)); iter = mdScanner.iterator(); } catch (Exception ex) { if (mdScanner != null) mdScanner.close(); iter = null; mdScanner = null; throw new RuntimeException(ex); } }
@Override public Iterator<Map.Entry<Key, Value>> iterator() { return batchScanner.iterator(); }
@Override public Iterator<Key> iterator() { return Iterators.transform(scanner.iterator(), new Function<Entry<Key,Value>,Key>() { @Nullable @Override public Key apply(@Nullable Entry<Key,Value> keyValueEntry) { return keyValueEntry.getKey(); } }); }
public RyaStatementBindingSetKeyValueIterator(TABLE_LAYOUT tableLayout, RyaTripleContext context, ScannerBase scannerBase, RangeBindingSetEntries rangeMap) { this(tableLayout, ((scannerBase instanceof BatchScanner) ? ((BatchScanner) scannerBase).iterator() : ((Scanner) scannerBase).iterator()), rangeMap, context); this.scanner = scannerBase; isBatchScanner = scanner instanceof BatchScanner; }
/** * cache closable iterator constructor * * @param scanner accumulo batch scanner * @param codec iterator decoder * @param handler result element row handler * @param cacheSize result cache size */ public ClientClosableIterator( @Nonnull BatchScanner scanner, @Nonnull BaseElementIterator<E> codec, @Nonnull AccumuloRowHandler<R, E> handler, int cacheSize ) { this.codec = codec; this.scanner = scanner; this.cacheSize = cacheSize; this.handler = handler; this.inner = scanner.iterator(); }
public PCJKeyToJoinBindingSetIterator(BatchScanner scanner, Map<String, String> pcjVarMap, Map<String, Value> constantConstraints, int maxPrefixLen) { Preconditions.checkNotNull(scanner); Preconditions.checkArgument(pcjVarMap.size() > 0, "Variable map must contain at least one variable!"); Preconditions.checkNotNull(constantConstraints, "Constant constraints cannot be null."); Preconditions.checkArgument(maxPrefixLen > 0, "Max prefix length must be greater than 0."); Preconditions .checkArgument(maxPrefixLen <= pcjVarMap.size(), "Max prefix length must be less than total number of binding names."); this.scanner = scanner; this.pcjVarMap = HashBiMap.create(pcjVarMap).inverse(); this.constantConstraints = constantConstraints; this.maxPrefixLen = maxPrefixLen; this.iterator = scanner.iterator(); }
public PCJKeyToJoinBindingSetIterator(BatchScanner scanner, Map<String, String> pcjVarMap, Map<String, Value> constantConstraints, int maxPrefixLen) { Preconditions.checkNotNull(scanner); Preconditions.checkArgument(pcjVarMap.size() > 0, "Variable map must contain at least one variable!"); Preconditions.checkNotNull(constantConstraints, "Constant constraints cannot be null."); Preconditions.checkArgument(maxPrefixLen > 0, "Max prefix length must be greater than 0."); Preconditions .checkArgument(maxPrefixLen <= pcjVarMap.size(), "Max prefix length must be less than total number of binding names."); this.scanner = scanner; this.pcjVarMap = HashBiMap.create(pcjVarMap).inverse(); this.constantConstraints = constantConstraints; this.maxPrefixLen = maxPrefixLen; this.iterator = scanner.iterator(); }
@Override public boolean hasNext() { if (closed) { return false; } if (null != this.currentEntry) { return true; } else if (null != this.currentBS && null != this.currentIter) { if (this.currentIter.hasNext()) { this.currentEntry = this.currentIter.next(); return hasNext(); } else { this.currentBS.close(); } } if (batchScannerIterator.hasNext()) { Entry<BatchScanner,Boolean> entry = batchScannerIterator.next(); this.currentBS = entry.getKey(); this.reverseIndex = entry.getValue(); this.currentIter = this.currentBS.iterator(); return hasNext(); } return false; }
private static ScanStat scan(BatchScanner bs, List<Range> ranges, Scanner scanner) { // System.out.println("ranges : "+ranges); ScanStat ss = new ScanStat(); long t1 = System.currentTimeMillis(); int count = Iterators.size(bs.iterator()); bs.close(); long t2 = System.currentTimeMillis(); ss.delta1 = t2 - t1; ss.count1 = count; count = 0; t1 = System.currentTimeMillis(); /* * for (Range range : ranges) { scanner.setRange(range); for (Entry<Key, Value> entry : scanner) * { count++; } } */ t2 = System.currentTimeMillis(); ss.delta2 = t2 - t1; ss.count2 = count; return ss; }
private void SearchIt(HashSet<Range> ranges, CompareUtil compUtil) { if(this.scannerIter == null) { try { this.bscanner = getBatchScanner(); this.bscanner.setRanges(ranges); bscanner.fetchColumnFamily(new Text(this.family)); this.scannerIter = bscanner.iterator(); } catch (AccumuloException | TableNotFoundException | AccumuloSecurityException e) { e.printStackTrace(); } } iterateOverEntries(this.scannerIter, compUtil); }
@Override public int size() { try { BatchScanner batchScanner = connector.createBatchScanner(tableName, authorizations, 5); batchScanner.setRanges(Collections.singleton(new Range())); try { int rows = 0; for (Iterator<Map.Entry<Key,Value>> it = batchScanner.iterator(); it.hasNext(); it.next()) { rows++; } return rows; } finally { batchScanner.close(); } } catch (TableNotFoundException e) { throw new PersistenceException("Unable to calculate size of Accumulo cache table " + tableName, e); } }
private EntityIdIterator(final Iterator<? extends ElementId> idIterator) throws RetrieverException { idsIterator = idIterator; count = 0; final Set<Range> ranges = new HashSet<>(); while (idsIterator.hasNext() && count < store.getProperties().getMaxEntriesForBatchScanner()) { count++; try { addToRanges(idsIterator.next(), ranges); } catch (final RangeFactoryException e) { LOGGER.error("Failed to create a range from given seed pair", e); } } try { scanner = getScanner(ranges); } catch (final Exception e) { CloseableUtil.close(idsIterator); CloseableUtil.close(ids); throw new RetrieverException(e); } scannerIterator = scanner.iterator(); }
MetaDataTableScanner(ClientContext context, Range range, CurrentState state, String tableName) { // scan over metadata table, looking for tablets in the wrong state based on the live servers // and online tables try { Connector connector = context.getConnector(); mdScanner = connector.createBatchScanner(tableName, Authorizations.EMPTY, 8); configureScanner(mdScanner, state); mdScanner.setRanges(Collections.singletonList(range)); iter = mdScanner.iterator(); } catch (Exception ex) { if (mdScanner != null) mdScanner.close(); iter = null; mdScanner = null; throw new RuntimeException(ex); } }
public MetaDataTableScanner(Instance instance, TCredentials auths, Range range, CurrentState state) { // scan over metadata table, looking for tablets in the wrong state based on the live servers and online tables try { Connector connector = instance.getConnector(auths.getPrincipal(), CredentialHelper.extractToken(auths)); mdScanner = connector.createBatchScanner(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS, 8); configureScanner(mdScanner, state); mdScanner.setRanges(Collections.singletonList(range)); iter = mdScanner.iterator(); } catch (Exception ex) { mdScanner.close(); throw new RuntimeException(ex); } }
@Override public boolean hasNext() { if (null == iterator) { try { Authorizations auths = connector.securityOperations().getUserAuthorizations(username); BatchScanner scanner = connector.createBatchScanner(queryTable, auths, 100); scanner.setRanges(ranges); for (String cf : cfs) { scanner.fetchColumnFamily(new Text(cf)); } iterator = scanner.iterator(); } catch (TableNotFoundException | AccumuloException | AccumuloSecurityException e) { throw new RuntimeException(e); } } nextIterator(); return null != topKey; }
private void batchCheck(Connector c, String tableName, IteratorSetting cfg, String context, String expected) throws Exception { BatchScanner bs = c.createBatchScanner(tableName, Authorizations.EMPTY, 1); bs.setRanges(Collections.singleton(new Range())); try { if (null != context) { bs.setClassLoaderContext(context); } if (null != cfg) { bs.addScanIterator(cfg); } Iterator<Entry<Key,Value>> iterator = bs.iterator(); for (int i = 0; i < ITERATIONS; i++) { assertTrue(iterator.hasNext()); Entry<Key,Value> next = iterator.next(); assertEquals(expected, next.getValue().toString()); } assertFalse(iterator.hasNext()); } finally { bs.close(); } }
@Override public void setupQuery(GenericQueryConfiguration genericConfig) throws Exception { if (!genericConfig.getClass().getName().equals(ContentQueryConfiguration.class.getName())) { throw new QueryException("Did not receive a ContentQueryConfiguration instance!!"); } final ContentQueryConfiguration config = (ContentQueryConfiguration) genericConfig; try { final BatchScanner scanner = this.scannerFactory .newScanner(config.getTableName(), config.getAuthorizations(), this.queryThreads, config.getQuery()); scanner.setRanges(config.getRanges()); if (null != this.viewName) { final IteratorSetting cfg = new IteratorSetting(50, RegExFilter.class); cfg.addOption(RegExFilter.COLQ_REGEX, this.viewName); scanner.addScanIterator(cfg); } this.iterator = scanner.iterator(); this.scanner = scanner; } catch (TableNotFoundException e) { throw new RuntimeException("Table not found: " + this.getTableName(), e); } }
@Test public void createTableAndBatchScan() throws Exception { ArrayList<Range> ranges = new ArrayList<>(); for (int i = 1; i < 257; i++) { ranges.add(new Range(new Text(String.format("%08x", (i << 8) - 16)))); } String table3 = getUniqueNames(1)[0]; getConnector().tableOperations().create(table3); getConnector().tableOperations().addSplits(table3, splits); BatchScanner bs = getConnector().createBatchScanner(table3, Authorizations.EMPTY, 3); bs.setRanges(ranges); Iterator<Entry<Key,Value>> iter = bs.iterator(); int count = Iterators.size(iter); bs.close(); Assert.assertEquals("Did not expect to find any entries", 0, count); }
private void verify(Connector c, String tableName, ByteArraySet nss, String... expected) throws Exception { Scanner scanner = c.createScanner(tableName, new Authorizations(nss)); verify(scanner.iterator(), expected); BatchScanner bs = getConnector().createBatchScanner(tableName, new Authorizations(nss), 3); bs.setRanges(Collections.singleton(new Range())); verify(bs.iterator(), expected); bs.close(); }