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 protected void setUpIterator(final int prio, final String name, final String term, final BatchScanner scanner, CommandLine cl, boolean negate) throws IOException { if (prio < 0) { throw new IllegalArgumentException("Priority < 0 " + prio); } final IteratorSetting si = new IteratorSetting(prio, name, RegExFilter.class); RegExFilter.setRegexs(si, term, term, term, term, true, cl.hasOption(matchSubstringOption.getOpt())); RegExFilter.setNegate(si, negate); scanner.addScanIterator(si); }
scan.setRanges(constraintEntry.getValue()); scan.fetchColumnFamily(new Text(Indexer.getIndexColumnFamily(constraintEntry.getKey().getFamily().getBytes(), constraintEntry.getKey().getQualifier().getBytes()).array())); scan.close(); return columnRanges; }));
this.scanner.addScanIterator(new IteratorSetting(1, "firstentryiter", FirstEntryInRowIterator.class)); this.scanner.fetchColumn(ROW_ID_COLUMN, ROW_ID_COLUMN); this.scanner.fetchColumn(family, qualifier); scanner.addScanIterator(setting); iterator = this.scanner.iterator();
/** * Loads the cardinality for the given Range. Uses a BatchScanner and sums the cardinality for all values that encapsulate the Range. * * @param key Range to get the cardinality for * @return The cardinality of the column, which would be zero if the value does not exist */ @Override public Long load(CacheKey key) throws Exception { LOG.debug("Loading a non-exact range from Accumulo: %s", key); // Get metrics table name and the column family for the scanner String metricsTable = getMetricsTableName(key.getSchema(), key.getTable()); Text columnFamily = new Text(getIndexColumnFamily(key.getFamily().getBytes(UTF_8), key.getQualifier().getBytes(UTF_8)).array()); // Create scanner for querying the range BatchScanner scanner = connector.createBatchScanner(metricsTable, key.auths, 10); scanner.setRanges(connector.tableOperations().splitRangeByTablets(metricsTable, key.range, Integer.MAX_VALUE)); scanner.fetchColumn(columnFamily, CARDINALITY_CQ_AS_TEXT); try { return stream(scanner) .map(Entry::getValue) .map(Value::toString) .mapToLong(Long::parseLong) .sum(); } finally { scanner.close(); } }
if( this.bscanner == null || !this.hasNext) { bscanner = getBatchScanner(); bscanner.setRanges(ranges); bscanner.addScanIterator(itSet); bscanner.fetchColumnFamily(new Text(this.family)); this.scannerIter = bscanner.iterator();
bs.setRanges(Collections.singleton(new Range())); IteratorSetting cfg = new IteratorSetting(50, WholeRowIterator.class); StatusSection.limit(bs); WorkSection.limit(bs); bs.addScanIterator(cfg); } finally { if (bs != null) { bs.close();
false); Range afterTable = new Range(tableRange.getEndKey(), false, allTables.getEndKey(), true); bs.setRanges(Arrays.asList(beforeTable, afterTable)); bs.fetchColumnFamily(DataFileColumnFamily.NAME); IteratorSetting cfg = new IteratorSetting(40, "grep", GrepIterator.class); GrepIterator.setTerm(cfg, "/" + tableId + "/"); bs.addScanIterator(cfg);
public Set<Path> getPendingReplicationPaths() { final Set<Path> paths = new HashSet<>(); // Read over the queued work BatchScanner bs; try { bs = context.createBatchScanner(ReplicationTable.NAME, Authorizations.EMPTY, 4); } catch (TableNotFoundException e) { log.debug("No replication table exists", e); return paths; } bs.setRanges(Collections.singleton(new Range())); StatusSection.limit(bs); try { Text buffer = new Text(); for (Entry<Key,Value> entry : bs) { Key k = entry.getKey(); k.getRow(buffer); paths.add(new Path(buffer.toString())); } } finally { bs.close(); } return paths; }
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); }
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(); } }
public FieldIndexIterable(Connector con, String shardTable, String eventUid, String datatype, Set<Authorizations> userAuths, List<Range> ranges) throws TableNotFoundException { scanner = ScannerHelper.createBatchScanner(con, shardTable, userAuths, ranges.size()); scanner.setRanges(ranges); Map<String,String> options = new HashMap(); options.put(FieldIndexDocumentFilter.DATA_TYPE_OPT, datatype); options.put(FieldIndexDocumentFilter.EVENT_UID_OPT, eventUid); IteratorSetting settings = new IteratorSetting(100, FieldIndexDocumentFilter.class, options); scanner.addScanIterator(settings); }
@Override public void close() { scanner.close(); nanoEnd = System.nanoTime(); }
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; }
@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); } }
bs.setRanges(ranges); if (!degInColQ) bs.fetchColumn(EMPTY_TEXT, degColumnText == null ? EMPTY_TEXT : degColumnText); else if (degColumnText != null) { ColumnSliceFilter.setSlice(itset, degColumnText.toString(), true, Range.followingPrefix(degColumnText).toString(), false); bs.addScanIterator(itset); bs.addScanIterator(MinMaxFilter.iteratorSetting(50, ScalarType.LONG, minDegree, maxDegree, degInColQ, degColumnText == null ? null : degColumnText.toString())); bs.setRanges(Collections.singletonList(new Range())); bs.clearColumns(); bs.clearScanIterators();
final BatchScanner scanner = shellState.getAccumuloClient().createBatchScanner(tableName, auths, numThreads); scanner.setRanges(Collections.singletonList(getRange(cl, interpeter))); scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS); printRecords(cl, shellState, config, scanner, formatter, printFile); } finally { scanner.close();
private static ScanStats runScanTest(Connector connector, int numLoop, List<Range> ranges) throws Exception { Scanner scanner = null; BatchScanner bs = connector.createBatchScanner(MetadataTable.NAME, Authorizations.EMPTY, 1); bs.fetchColumnFamily(TabletsSection.CurrentLocationColumnFamily.NAME); TabletsSection.TabletColumnFamily.PREV_ROW_COLUMN.fetch(bs); bs.setRanges(ranges); // System.out.println(ranges); ScanStats stats = new ScanStats(); for (int i = 0; i < numLoop; i++) { ScanStat ss = scan(bs, ranges, scanner); stats.merge(ss); } return stats; }
if (val[0] != AccumuloByteSerializer.SERIALIZABLE) { BatchScanner scan = getBatchScanner(); scan.fetchColumnFamily(new Text(key)); scan.addScanIterator(is);
bs.setRanges(ranges); bs.clearColumns(); bs.fetchColumn(new Text(ColumnFamily.WAY), new Text(ColumnQualifier.ID)); bs.fetchColumn(new Text(ColumnFamily.WAY), new Text(ColumnQualifier.REFERENCES));