我正在尝试让 Accumulo 在 OSX Mavericks 上工作。我有 Java 1.8,以及通过 Homebrew 安装的最新 Zookeeper 和 Hadoop。这两个似乎都工作正常。
我下载了 Accumulo 的二进制文件,并在 accumulo/conf/accumulo-env.sh 中编辑了这些行:
test -z "$HADOOP_PREFIX" && export HADOOP_PREFIX=/usr/local/Cellar/hadoop/2.4.0
test -z "$HADOOP_CONF_DIR" && export HADOOP_CONF_DIR="$HADOOP_PREFIX/libexec/etc/hadoop"
test -z "$JAVA_HOME" && export JAVA_HOME=$(/usr/libexec/java_home)
test -z "$ZOOKEEPER_HOME" && export ZOOKEEPER_HOME=/usr/local/Cellar/zookeeper/3.4.6
但是,当我运行时bin/accumulo init
,我得到:
$ bin/accumulo init
Uncaught exception: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at org.apache.accumulo.start.classloader.AccumuloClassLoader.<clinit>(AccumuloClassLoader.java:78)
at org.apache.accumulo.start.Main.main(Main.java:39)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
我找不到任何有用的搜索结果。我不确定什么配置不当会导致这样的错误,所以我不确定从哪里开始。
我没有对 Zookeeper 或 Hadoop 的配置进行任何更改,因此 Hadoop 处于其基本的独立模式,我已通过他们的一个示例确认该模式正在工作。Zookeeper 使用 zkServer 正确启动/停止。所以我猜问题出在我的 Accumulo 配置中。不幸的是,他们的 README 对我的情况根本没有帮助,基本上只是告诉我,我下载的 Accumulo 二进制文件应该开箱即用。
我尝试使用设置和未设置的环境变量 JAVA_HOME 运行它,并在 accumulo-env.sh 中明确定义它。
感谢您为我指明正确方向的任何事情。我的最终目标实际上是修补 GeoMesa,这取决于 Accumulo 的工作。