OSX Mavericks で Accumulo を動作させようとしています。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 は基本的なスタンドアロン モードにあり、サンプルの 1 つを使用して動作していることを確認しました。Zookeeper は zkServer で適切に開始/停止します。したがって、問題は Accumulo の構成にあると推測しています。残念ながら、彼らの README は私の状況ではまったく役に立ちません。基本的に、ダウンロードした Accumulo バイナリは箱から出してすぐに動作するはずだと言っているだけです。
環境変数JAVA_HOMEを設定および設定解除し、accumulo-env.shで明示的に定義して、これを実行しようとしました。
私を正しい方向に向けることができるものをありがとう。私の最終目標は、Accumulo の動作に依存する GeoMesa をいじることです。