@Override public void attachIterator(String tableName, IteratorSetting setting, EnumSet<IteratorScope> scopes) throws AccumuloSecurityException, AccumuloException, TableNotFoundException { testClassLoad(tableName, setting.getIteratorClass(), SortedKeyValueIterator.class.getName()); super.attachIterator(tableName, setting, scopes); }
@Override public void attachIterator(String namespace, IteratorSetting setting, EnumSet<IteratorScope> scopes) throws AccumuloSecurityException, AccumuloException, NamespaceNotFoundException { testClassLoad(namespace, setting.getIteratorClass(), SortedKeyValueIterator.class.getName()); super.attachIterator(namespace, setting, scopes); }
public void printVerboseInfo() throws IOException { StringBuilder sb = new StringBuilder("-\n"); sb.append("- Current user: ").append(accumuloClient.whoami()).append("\n"); if (execFile != null) sb.append("- Executing commands from: ").append(execFile).append("\n"); if (disableAuthTimeout) sb.append("- Authorization timeout: disabled\n"); else sb.append("- Authorization timeout: ") .append(String.format("%ds%n", TimeUnit.NANOSECONDS.toSeconds(authTimeout))); sb.append("- Debug: ").append(isDebuggingEnabled() ? "on" : "off").append("\n"); if (!scanIteratorOptions.isEmpty()) { for (Entry<String,List<IteratorSetting>> entry : scanIteratorOptions.entrySet()) { sb.append("- Session scan iterators for table ").append(entry.getKey()).append(":\n"); for (IteratorSetting setting : entry.getValue()) { sb.append("- Iterator ").append(setting.getName()).append(" options:\n"); sb.append("- ").append("iteratorPriority").append(" = ") .append(setting.getPriority()).append("\n"); sb.append("- ").append("iteratorClassName").append(" = ") .append(setting.getIteratorClass()).append("\n"); for (Entry<String,String> optEntry : setting.getOptions().entrySet()) { sb.append("- ").append(optEntry.getKey()).append(" = ") .append(optEntry.getValue()).append("\n"); } } } } sb.append("-\n"); reader.print(sb.toString()); }
.append(setting.getPriority()).append("\n"); sb.append("- ").append("iteratorClassName").append(" = ") .append(setting.getIteratorClass()).append("\n"); for (Entry<String,String> optEntry : setting.getOptions().entrySet()) { sb.append("- ").append(optEntry.getKey()).append(" = ").append(optEntry.getValue())
protected void addScanIterators(final Shell shellState, CommandLine cl, final Scanner scanner, final String tableName) throws Exception { List<IteratorSetting> tableScanIterators; if (cl.hasOption(profileOpt.getOpt())) { String profile = cl.getOptionValue(profileOpt.getOpt()); tableScanIterators = shellState.iteratorProfiles.get(profile); if (tableScanIterators == null) { throw new IllegalArgumentException("Profile " + profile + " does not exist"); } for (IteratorSetting iteratorSetting : tableScanIterators) { ensureTserversCanLoadIterator(shellState, tableName, iteratorSetting.getIteratorClass()); } } else { tableScanIterators = shellState.scanIteratorOptions.get(tableName); if (tableScanIterators == null) { Shell.log.debug("Found no scan iterators to set"); return; } } Shell.log.debug("Found " + tableScanIterators.size() + " scan iterators to set"); for (IteratorSetting setting : tableScanIterators) { Shell.log.debug("Setting scan iterator " + setting.getName() + " at priority " + setting.getPriority() + " using class name " + setting.getIteratorClass()); for (Entry<String,String> option : setting.getOptions().entrySet()) { Shell.log.debug("Setting option for " + setting.getName() + ": " + option.getKey() + "=" + option.getValue()); } scanner.addScanIterator(setting); } }
@Override public void attachIterator(String tableName, IteratorSetting setting, EnumSet<IteratorScope> scopes) throws AccumuloSecurityException, AccumuloException, TableNotFoundException { checkArgument(tableName != null, "tableName is null"); checkArgument(setting != null, "setting is null"); checkArgument(scopes != null, "scopes is null"); checkIteratorConflicts(tableName, setting, scopes); for (IteratorScope scope : scopes) { String root = String.format("%s%s.%s", Property.TABLE_ITERATOR_PREFIX, scope.name().toLowerCase(), setting.getName()); for (Entry<String,String> prop : setting.getOptions().entrySet()) { this.setProperty(tableName, root + ".opt." + prop.getKey(), prop.getValue()); } this.setProperty(tableName, root, setting.getPriority() + "," + setting.getIteratorClass()); } }
@Override public void attachIterator(String namespace, IteratorSetting setting, EnumSet<IteratorScope> scopes) throws AccumuloSecurityException, AccumuloException, NamespaceNotFoundException { checkIteratorConflicts(namespace, setting, scopes); for (IteratorScope scope : scopes) { String root = String.format("%s%s.%s", Property.TABLE_ITERATOR_PREFIX, scope.name().toLowerCase(), setting.getName()); for (Entry<String,String> prop : setting.getOptions().entrySet()) { this.setProperty(namespace, root + ".opt." + prop.getKey(), prop.getValue()); } this.setProperty(namespace, root, setting.getPriority() + "," + setting.getIteratorClass()); } }
public static <K extends WritableComparable<?>,V extends Writable> SortedKeyValueIterator<K,V> loadIterators( // @formatter:on IteratorScope scope, SortedKeyValueIterator<K,V> source, KeyExtent extent, AccumuloConfiguration conf, List<IteratorSetting> iterators, IteratorEnvironment env) throws IOException { List<IterInfo> ssiList = new ArrayList<>(); Map<String,Map<String,String>> ssio = new HashMap<>(); for (IteratorSetting is : iterators) { ssiList.add(new IterInfo(is.getPriority(), is.getIteratorClass(), is.getName())); ssio.put(is.getName(), is.getOptions()); } return loadIterators(scope, source, extent, conf, ssiList, ssio, env, true); }
iteratorProps.put(root + ".opt." + prop.getKey(), prop.getValue()); iteratorProps.put(root, setting.getPriority() + "," + setting.getIteratorClass());
@Override public synchronized void addScanIterator(IteratorSetting si) { checkArgument(si != null, "si is null"); if (serverSideIteratorList.size() == 0) serverSideIteratorList = new ArrayList<>(); for (IterInfo ii : serverSideIteratorList) { if (ii.iterName.equals(si.getName())) throw new IllegalArgumentException("Iterator name is already in use " + si.getName()); if (ii.getPriority() == si.getPriority()) throw new IllegalArgumentException( "Iterator priority is already in use " + si.getPriority()); } serverSideIteratorList.add(new IterInfo(si.getPriority(), si.getIteratorClass(), si.getName())); if (serverSideIteratorOptions.size() == 0) serverSideIteratorOptions = new HashMap<>(); Map<String,String> opts = serverSideIteratorOptions.get(si.getName()); if (opts == null) { opts = new HashMap<>(); serverSideIteratorOptions.put(si.getName(), opts); } opts.putAll(si.getOptions()); }
.append(setting.getPriority()).append("\n"); sb.append("- ").append("iteratorClassName").append(" = ") .append(setting.getIteratorClass()).append("\n"); for (Entry<String,String> optEntry : setting.getOptions().entrySet()) { sb.append("- ").append(optEntry.getKey()).append(" = ")
public static TIteratorSetting toTIteratorSetting(IteratorSetting is) { return new TIteratorSetting(is.getPriority(), is.getName(), is.getIteratorClass(), is.getOptions()); }
for (IteratorSetting iter : tableConfig.getIterators()) { if (!client.tableOperations().testClassLoad(tableConfigEntry.getKey(), iter.getIteratorClass(), SortedKeyValueIterator.class.getName())) throw new AccumuloException("Servers are unable to load " + iter.getIteratorClass() + " as a " + SortedKeyValueIterator.class.getName());
Map<String,Map<String,String>> iterOpts = new HashMap<>(); for (IteratorSetting is : ac.getIterators()) { iterList.add(is.getName() + "=" + is.getPriority() + "," + is.getIteratorClass()); iterOpts.put(is.getName(), is.getOptions());
public ByteBuffer compress(IteratorSetting[] iterators) { UnsynchronizedBuffer.Writer out = new UnsynchronizedBuffer.Writer(iterators.length * 8); out.writeVInt(iterators.length); for (IteratorSetting is : iterators) { out.writeVInt(getSymbolID(is.getName())); out.writeVInt(getSymbolID(is.getIteratorClass())); out.writeVInt(is.getPriority()); Map<String,String> opts = is.getOptions(); out.writeVInt(opts.size()); for (Entry<String,String> entry : opts.entrySet()) { out.writeVInt(getSymbolID(entry.getKey())); out.writeVInt(getSymbolID(entry.getValue())); } } return out.toByteBuffer(); }
@Override protected void doTableOp(final Shell shellState, final String tableName) throws AccumuloException, AccumuloSecurityException { // compact the tables if (cancel) { try { shellState.getAccumuloClient().tableOperations().cancelCompaction(tableName); Shell.log.info("Compaction canceled for table " + tableName); } catch (TableNotFoundException e) { throw new AccumuloException(e); } } else { try { if (compactionConfig.getWait()) { Shell.log.info("Compacting table ..."); } for (IteratorSetting iteratorSetting : compactionConfig.getIterators()) { ScanCommand.ensureTserversCanLoadIterator(shellState, tableName, iteratorSetting.getIteratorClass()); } shellState.getAccumuloClient().tableOperations().compact(tableName, compactionConfig); Shell.log.info("Compaction of table " + tableName + " " + (compactionConfig.getWait() ? "completed" : "started") + " for given range"); } catch (Exception ex) { throw new AccumuloException(ex); } } }
String iteratorClass = setting.getIteratorClass(); if (!testClassLoad(tableName, iteratorClass, skviName)) { throw new AccumuloException("TabletServer could not load iterator class " + iteratorClass);
iiList.add(new IterInfo(iterSetting.getPriority(), iterSetting.getIteratorClass(), iterSetting.getName())); iterOptions.put(iterSetting.getName(), iterSetting.getOptions());
public DynamicIteratorSetting prepend(IteratorSetting setting) { if (setting.getIteratorClass().equals(DynamicIterator.class.getName())) { DynamicIteratorSetting dis = fromMap(setting.getOptions()); for (Iterator<IteratorSetting> iterator = dis.iteratorSettingList.descendingIterator(); iterator.hasNext(); ) { IteratorSetting itset = iterator.next(); iteratorSettingList.addFirst(itset); } } else iteratorSettingList.addFirst(setting); return this; }
@Override public void attachIterator(String tableName, IteratorSetting setting, EnumSet<IteratorScope> scopes) throws AccumuloSecurityException, AccumuloException, TableNotFoundException { testClassLoad(tableName, setting.getIteratorClass(), SortedKeyValueIterator.class.getName()); super.attachIterator(tableName, setting, scopes); }