[ https://issues.apache.org/jira/browse/ACCUMULO-2911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dave Marion resolved ACCUMULO-2911. ----------------------------------- Resolution: Cannot Reproduce Closing this due to lack of response. Can re-open if it's still an issue. > setscaniter and setshelliter unable to load class. > -------------------------------------------------- > > Key: ACCUMULO-2911 > URL: https://issues.apache.org/jira/browse/ACCUMULO-2911 > Project: Accumulo > Issue Type: Bug > Affects Versions: 1.5.0 > Reporter: David Medinets > Priority: Trivial > > Problem: > I can use a custom iterator using the setiter command but the same iterator > does not work using the setscaniter or setshelliter commands. > References: > https://blogs.apache.org/accumulo/entry/the_accumulo_classloader > http://accumulo.apache.org/1.5/examples/classpath.html > Description: > I am using my https://github.com/medined/D4M_Schema project to start > Accumulo. So the environment that I am using can be duplicated exactly if > needed. I am using > Accumulo: 1.5.0 > Hadoop: 1.2.1 > The classpath settings in accumulo-site.xml are the following (which I think > are the default): > <property> > <name>general.classpaths</name> > <value> > $ACCUMULO_HOME/server/target/classes/, > $ACCUMULO_HOME/core/target/classes/, > $ACCUMULO_HOME/start/target/classes/, > $ACCUMULO_HOME/examples/target/classes/, > $ACCUMULO_HOME/lib/[^.].$ACCUMULO_VERSION.jar, > $ACCUMULO_HOME/lib/[^.].*.jar, > $ZOOKEEPER_HOME/zookeeper[^.].*.jar, > $HADOOP_HOME/conf, > $HADOOP_HOME/[^.].*.jar, > $HADOOP_HOME/lib/[^.].*.jar, > </value> > <description>Classpaths that accumulo checks for updates and class > files. > When using the Security Manager, please remove the > ".../target/classes/" values. > </description> > </property> > I can load my iterator using setiter but not with setscaniter or setshelliter. > Here is my do-nothing iterator: > public class MyIterator extends WrappingIterator implements OptionDescriber { > @Override > public IteratorOptions describeOptions() { > String name = "dummy"; > String description = "Dummy Description"; > Map<String, String> namedOptions = new HashMap<String, String>(); > List<String> unnamedOptionDescriptions = null; > return new IteratorOptions(name, description, namedOptions, > unnamedOptionDescriptions); > } > @Override > public boolean validateOptions(Map<String, String> options) { > return true; > } > > } > I copy the jar file out to HDFS: > hadoop fs -mkdir /user/vagrant/d4m/classpath > hadoop fs -put /vagrant/schema/target/d4m_schema-0.0.1-SNAPSHOT.jar > /user/vagrant/classpath > I set the table-specific classpath context: > createtable atest > table atest > insert row cf cq value > config -s > general.vfs.context.classpath.d4m=hdfs://affy-master:9000/user/vagrant/classpath > config -t atest -s table.classpath.context=d4m > Now I can configure the iterator and scan over the single row without a > problem: > setiter -n MyIterator -p 10 -scan -minc -majc -class > com.codebits.d4m.iterator.MyIterator > scan > deleteiter -n MyIterator -scan -minc -majc > However, the setscaniter commands fails: > root@instance atest> setscaniter -n MyIterator -p 10 -class > com.codebits.d4m.iterator.MyIterator > 2014-06-15 02:54:14,098 [shell.Shell] WARN : Deprecated, use setshelliter > Dummy Description > 2014-06-15 02:54:14,126 [shell.Shell] ERROR: > org.apache.accumulo.core.util.shell.ShellCommandException: Command could not > be initialized (Unable to load com.codebits.d4m.iterator.MyIterator) > As does the setshelliter: > root@instance atest> setshelliter -pn d4m -n MyIterator -p 10 -class > com.codebits.d4m.iterator.MyIterator > Dummy Description > 2014-06-15 02:55:07,025 [shell.Shell] ERROR: > org.apache.accumulo.core.util.shell.ShellCommandException: Command could not > be initialized (Unable to load com.codebits.d4m.iterator.MyIterator) > I don't see any messages in the log files. -- This message was sent by Atlassian JIRA (v6.3.4#6332)