java - 在本地运行 Mahout 获取 MahoutDriver 的 ClassNotFoundException

标签 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

最佳答案

我从来没有成功地从二进制包运行 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

关于java - 在本地运行 Mahout 获取 MahoutDriver 的 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16973324/

相关文章:

java - 使用 Servlet 和准备好的语句更新类未找到异常(MySQL 驱动程序)

java - 有没有办法通过POM.xml修改classpath?

hadoop - Spark 独立版和 HDFS 的数据局部性

apache-spark - pyspark根据groupby列获取不同的值以流式传输数据

java - Java中的单例设计模式和单例对象有什么区别?

java - Java 新手,对名称/变量引用有疑问

java - ByteArrayInputStream 与自己的类

java - maven构建的可执行Jar找不到logback.xml

maven - 如何避免 mercurial 分支中的分支依赖文件发生冲突?

java - 将两个存在于 hive 中的 spark 表连接起来