我正在尝试构建基于协作过滤的推荐系统,作为学术项目的一部分。我认为Mahout项目有很大的潜力,我想用它。
我在我的ubuntu 10.1上安装了Mahout,hadoop和Java。 Hadoop和Java已经过检查,可以很好地协同工作。 (跑Hadoop字数例子工作)
我正在关注此tutorial以运行带有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文件,有人有任何想法吗?
答案 0 :(得分:4)
引用我的电子邮件回复您:GroupLens示例与Hadoop无关。你根本不应该那样做。看起来您正试图通过Maven运行该示例,但是从Hadoop安装目录。 Hadoop不是Mahout所以当然也找不到Mahout课程。尝试从Mahout目录跑步。