[ https://issues.apache.org/jira/browse/ACCUMULO-4611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16282945#comment-16282945 ]
Christopher Tubbs commented on ACCUMULO-4611: --------------------------------------------- Beginning work on this based on conversation in https://lists.apache.org/thread.html/194cd8357a3db48eeba684c2c945faad39b7da67902729431a1f96b3@%3Cdev.accumulo.apache.org%3E Steps I'm taking are: # Bump 1.8.2-SNAPSHOT to 1.9.0-SNAPSHOT # Deprecate commons-configuration leakage into the public API for 1.9.0 (as much as possible; cannot deprecate the superclass of ClientConfiguration) # Add new method for using ClientConfiguration directly, instead of Configuration superclass. # Drop deprecated leakage into public API for 2.0.0 > Commons Configuration either needs bumped or needs to be provided for Hadoop 3 > ------------------------------------------------------------------------------ > > Key: ACCUMULO-4611 > URL: https://issues.apache.org/jira/browse/ACCUMULO-4611 > Project: Accumulo > Issue Type: Bug > Affects Versions: 1.7.2, 1.8.1 > Environment: CentOS 7 > Accumulo 1.7.x, 1.8.x > Hadoop 3.0.0-alpha 2 > Zookeeper 3.4.9 > Reporter: Michael Hogue > Assignee: Christopher Tubbs > Priority: Critical > Fix For: 2.0.0 > > > I was investigating running either Accumulo 1.7.x or 1.8.x on Hadoop > 3.0.0-alpha 2 and ran into a couple of issues. Since Accumulo assumes some > dependencies will be provided by Hadoop (per ACCUMULO-1244), if those > dependencies change then Accumulo might also need to change. > HADOOP-13660 bumped {{commons-configuration}} from 1.6 -> 2.1 for Hadoop > 3.0.0 and so NoClassDefFoundErrors are thrown per the below stack trace on > {{accumulo init}}: > {noformat} > [mike@localhost cloud]$ accumulo init > 2017-03-22 15:38:34,106 [start.Main] ERROR: Uncaught exception > java.util.ServiceConfigurationError: > org.apache.accumulo.start.spi.KeywordExecutable: Provider > org.apache.accumulo.proxy.Proxy could not be instantiated > at java.util.ServiceLoader.fail(ServiceLoader.java:232) > at java.util.ServiceLoader.access$100(ServiceLoader.java:185) > at > java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) > at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) > at java.util.ServiceLoader$1.next(ServiceLoader.java:480) > at org.apache.accumulo.start.Main.checkDuplicates(Main.java:223) > at org.apache.accumulo.start.Main.getExecutables(Main.java:215) > at org.apache.accumulo.start.Main.main(Main.java:78) > Caused by: java.lang.NoClassDefFoundError: > org/apache/commons/configuration/Configuration > at java.lang.Class.getDeclaredConstructors0(Native Method) > at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) > at java.lang.Class.getConstructor0(Class.java:3075) > at java.lang.Class.newInstance(Class.java:412) > at > java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) > ... 5 more > Caused by: java.lang.ClassNotFoundException: > org.apache.commons.configuration.Configuration > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at > org.apache.accumulo.start.classloader.AccumuloClassLoader$2.loadClass(AccumuloClassLoader.java:284) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > ... 10 more > {noformat} > I worked around this by dropping the {{commons-configuration}} 1.6 jar on > Accumulo's classpath, but this should either be provided by Accumulo now or > Accumulo should be bumped to {{commons-configuration2}} as well. Note that > the latter change would cause problems for Hadoop 2 installations. > There was actually one more thing that needed added to the accumulo-site.xml > in order to get Accumulo to run in Hadoop 3: > {noformat} > $HADOOP_PREFIX/share/hadoop/client/[^.].*.jar > {noformat} > The reason for this is because {{Hdfs.java}} moved from the hadoop-hdfs jar > to the hadoop-client-api jar. -- This message was sent by Atlassian JIRA (v6.4.14#64029)