在本地运行mahout获取mahoutdriver的classnotfoundexception

carvr3hs  于 2021-06-04  发布在  Hadoop
关注(0)|答案(4)|浏览(314)

我试图在windows8机器上本地运行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\u09。我还设置了环境变量 MAHOUT_LOCAL = true 以及 MAHOUT_HEAPSIZE=128

vsikbqxv

vsikbqxv1#

我现在才发现这个问题,很抱歉回答晚了。
我认为,您可以通过maven解决安装所需模块的问题,如下所述:

mvn -DskipTests -X clean install
wxclj1h5

wxclj1h52#

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

ktecyv1j

ktecyv1j3#

你试过设置类路径吗?

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

c8ib6hqw4#

问题出在mahout shell脚本中(在 bin )这不正确 lib/hadoop/* 它应该扫描这个文件夹中的jar文件以将它们单独添加到类路径

相关问题