【问题标题】:How do I troubleshoot the installation of Apache Accumulo on Linux?如何对 Linux 上的 Apache Accumulo 安装进行故障排除?
【发布时间】:2019-08-12 06:56:14
【问题描述】:

我正在尝试在 RHEL 7.x 上安装开源 Accumulo。我有 2 GB 的交换空间。我已经安装了 Java 1.8、Hadoop 3 和 Zookeeper。我已经为 Accumulo 1.9.2 运行了 bootstrap_config.sh 脚本。

我运行了这个(并希望它能够工作):

/bin/accumulo-1.9.2/bin/accumulo init

但我收到此错误:

[start.Main] 错误:未捕获的异常 java.util.ServiceConfigurationError: org.apache.accumulo.start.spi.KeywordExecutable:提供者 org.apache.accumulo.proxy.Proxy 无法实例化 在 java.util.ServiceLoader.fail(ServiceLoader.java:232) 在 java.util.ServiceLoader.access$100(ServiceLoader.java:185) 在 java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) 在 java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) 在 java.util.ServiceLoader$1.next(ServiceLoader.java:480) 在 org.apache.accumulo.start.Main.checkDuplicates(Main.java:237) 在 org.apache.accumulo.start.Main.getExecutables(Main.java:228) 在 org.apache.accumulo.start.Main.main(Main.java:84) 引起:java.lang.NoClassDefFoundError: org/apache/commons/配置/配置 在 java.lang.Class.getDeclaredConstructors0(本机方法) 在 java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 在 java.lang.Class.getConstructor0(Class.java:3075) 在 java.lang.Class.newInstance(Class.java:412) 在 java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) ... 5 更多原因:java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration 在 java.net.URLClassLoader.findClass(URLClassLoader.java:382) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 org.apache.accumulo.start.classloader.AccumuloClassLoader$2.loadClass(AccumuloClassLoader.java:294) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 10 更多

我使用 Accumulo bootstrap_config.sh 脚本来配置 Hadoop 版本 3。如何让“/bin/accumulo-1.9.2/bin/accumulo init”工作?

【问题讨论】:

    标签: java linux hadoop apache-zookeeper accumulo


    【解决方案1】:

    Accumulo 1.9.2 需要 Hadoop 2 开箱即用,但确实有一个构建配置文件来重建专门用于 Hadoop 3 的压缩包。您可以通过下载源代码压缩包并执行以下操作来使用 Hadoop 3 配置文件构建 Accumulo:

    mvn clean package -Dhadoop.profile=3 -DskipTests
    

    如果您对从源代码重建不感兴趣,则可以通过阅读错误消息并相应地调整类路径来简单地修复类路径问题。在这种情况下,您似乎缺少一个公共配置 jar。

    【讨论】:

    • 我使用 ./bootstrap_config.sh 来指定 Hadoop 版本 3。当我尝试上面的命令时,我得到“您指定的目标需要执行一个项目,但此目录中没有 POM ( /usr/bin/accumulo-1.9.2/bin)。请确认您从正确的目录调用了 Maven。”我该怎么办?
    • 听起来您正试图从源代码树根以外的位置运行构建命令。要从源代码重建,您必须首先从下载页面获取源代码发布 tarball。
    • 我获得了 accumulo-1.9.2-bin.tar.gz 文件。我将文件解压缩到新目录 /opt/ 中。然后我进入这个目录我运行了你提供的命令。它以同样的方式失败并出现同样的错误。我相信这被认为是来自“源代码树的根”。什么是“源码树的根”?
    • 这是二进制压缩包。您需要下载源代码压缩包。 (名称中带有“-src”的那个。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多