我想讓Accumulo在OSX Mavericks上工作。我有Java 1.8,最新的Zookeeper和Hadoop通過Homebrew安裝。這兩個似乎都正常工作。Java - Accumulo init在OSX Mavericks上的異常 - log4j logger
我下載了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的工作。
事實證明,我的問題可能是我自己的錯。我對HADOOP_PREFIX的設置應該是'HADOOP_PREFIX =/usr/local/Cellar/hadoop/2.4.0/libexec',但我放棄了libexec部分。我在HADOOP_CONF_DIR條目中通過將libexec添加到那裏的路徑來解釋了這一點。然而,答案直接幫助我解決了這個問題,因爲我通過安裝Accumulo 1.5.1(我一直試圖使用1.6)並在乾淨的配置文件中看到註釋掉的配置提示來發現它。感謝您的答覆! – ConnorManning
很高興聽到有幫助! – milk3422