You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Christopher Tubbs (JIRA)" <ji...@apache.org> on 2017/08/03 23:36:00 UTC

[jira] [Commented] (ACCUMULO-4611) Commons Configuration either needs bumped or needs to be provided for Hadoop 3

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