我正在尝试构建一个基于协作过滤的推荐系统作为学术项目的一部分。我认为 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 文件,有人有什么想法吗?