2

我正在尝试构建一个基于协作过滤的推荐系统作为学术项目的一部分。我认为 Mahout 项目有很大的潜力,我想使用它。

我在我的 ubuntu 10.1 上安装了 Mahout、hadoop 和 Java。已检查 Hadoop 和 Java 可以一起正常工作。(运行 Hadoop 字数统计示例作业)

我正在按照本教程运行包含 100 万个数据集的“Taste Grouplens 示例”。我输入了以下内容

chirayu@chirayu-laptop:~/hadoop-0.20.2$ mvn -e exec:java 

-Dexec.mainClass="org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommenderEvaluato

rRunner" -Dexec.args="-i /home/chirayu/mahout_source/trunk/examples/data/ratings.dat"

然后我按照教程的hadoop集群部分运行它我在examples目录中安装了mvn,它在examples/target/目录中生成了jar文件,然后我继续下一部分,我必须在上面运行作业hadoop 我输入了以下内容:

    chirayu@chirayu-laptop:~/hadoop-0.20.2$ sudo bin/hadoop jar /home/chirayu/mahout_source
/trunk/examples/target/mahout-examples-0.5-SNAPSHOT.jar 

org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommenderEvaluatorRunner 

我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/mahout/cf/taste/eval/RecommenderEvaluator
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
Caused by: java.lang.ClassNotFoundException: org.apache.mahout.cf.taste.eval.RecommenderEvaluator
    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:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 3 more

我不太确定用什么代替我不太确定我是否正确部署了 jar 文件,有人有什么想法吗?

4

1 回答 1

4

引用我给您的电子邮件回复:GroupLens 示例与 Hadoop 无关。你根本不需要那个。看起来您正在尝试通过 Maven 运行该示例,但来自 Hadoop 安装目录。Hadoop 不是 Mahout,因此它当然无法以这种方式找到 Mahout 类。尝试从 Mahout 目录运行。

于 2010-10-24T21:13:36.933 回答