运行Mahout本地获取MahoutDriver的ClassNotFoundException

时间:2013-06-06 22:31:14

标签: java maven hadoop classnotfoundexception mahout

我正在尝试在Windows 8计算机上本地运行Mahout(不使用Hadoop)。我意识到这不是最佳设置,但这就是我必须使用的。

当我尝试运行bin/mahout时,我收到以下错误:

$ bin/mahout
MAHOUT_LOCAL is set, so we don't add HADOOP_CONF_DIR to classpath.
no HADOOP_HOME set, running locally
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/mahout/dri
ver/MahoutDriver
Caused by: java.lang.ClassNotFoundException: org.apache.mahout.driver.MahoutDriv
er
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.mahout.driver.MahoutDriver.  Program w
ill exit.

我已尝试下载源代码并使用maven进行安装并使用预编译的分发文件,这两个文件都在此处提供:http://www.poolsaboveground.com/apache/mahout/

我也试过了0.7和0.6 Mahout版本并得到了同样的问题。不确定它是否与我的java版本有关,但我正在使用:1.7.0_09。我还设置了环境变量MAHOUT_LOCAL = trueMAHOUT_HEAPSIZE=128

4 个答案:

答案 0 :(得分:4)

我从没有成功地从二进制包运行mahout,它似乎并不是一个独立的包。最简单的方法是从源代码编译,就安装Maven而言,这是非常简单的:

mkdir mahout
cd mahout/
svn co http://svn.apache.org/repos/asf/mahout/trunk
cd trunk/
mvn compile
mvn install
export MAHOUT_LOCAL=TRUE
export MAHOUT_HEAPSIZE=1000

然后您可以使用这个非常详细的示例来测试您的安装是否正常:http://www.cs.ucy.ac.cy/courses/EPL660/labs/Stalo/Lab8.pdf

答案 1 :(得分:1)

我现在才发现这个问题,对不起,我很抱歉。

我认为您可以通过Maven解决您的问题,正如here所解释的那样,使用以下命令安装所需的模块:

mvn -DskipTests -X clean install 

答案 2 :(得分:0)

您是否尝试过设置CLASSPATH?

export CLASSPATH=${CLASSPATH}:your_MAHOUT_HOME/mahout-distribution-0.7/lib/hadoop/hadoop-core-0.20.204.0.jar 

答案 3 :(得分:-1)

问题出在 mahout shell脚本(bin下),错误地将lib/hadoop/*添加到类路径,它应扫描将此文件夹中的Jar文件单独添加到类路径

相关问题