【问题标题】:Running Mahout Locally getting ClassNotFoundException for MahoutDriver在本地运行 Mahout 为 MahoutDriver 获取 ClassNotFoundException
【发布时间】:2013-06-03 02:59:20
【问题描述】:

我正在尝试在 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

【问题讨论】:

    标签: java maven hadoop classnotfoundexception mahout


    【解决方案1】:

    您是否尝试设置 CLASSPATH?

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

    【讨论】:

    • 我还没试过。正如我所提到的,我试图不使用 Hadoop,而且我的 mahout-distribution-0.7 中似乎没有 lib 文件夹。如果我仍然应该设置那个变量,我到底应该在哪里设置呢?对不起,如果这听起来像一个简单的问题!
    【解决方案2】:

    我从未成功从二进制包运行 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

    【讨论】:

      【解决方案3】:

      问题出在 ma​​hout shell 脚本(在 bin 下)中,它错误地将 lib/hadoop/* 添加到 classpath,它应该在其中扫描 Jar 文件文件夹以将它们单独添加到 类路径

      【讨论】:

        【解决方案4】:

        我现在才发现这个问题,很抱歉回答迟了。

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

        mvn -DskipTests -X clean install 
        

        【讨论】:

          猜你喜欢
          • 2016-02-21
          • 1970-01-01
          • 2014-08-17
          • 1970-01-01
          • 1970-01-01
          • 2022-10-24
          • 2016-12-03
          • 2013-11-21
          • 2013-01-23
          相关资源
          最近更新 更多