[ 
https://issues.apache.org/jira/browse/ACCUMULO-4611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16113701#comment-16113701
 ] 

Christopher Tubbs commented on ACCUMULO-4611:
---------------------------------------------

I tried my hand at bumping our use to 2.1.1. A few pitfalls: 
ClientConfiguration and ZooKeeperInstance are both public API with 
commons-configuration 1.6 objects in their public API methods. That will need 
to be deprecated, because the package names have changed. The good thing is 
that because the package names have changed, it's okay to have both on the 
class path.

> 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
>             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)

Reply via email to