帮助在hadoop上运行Taste Grouplens演示

时间:2010-10-24 20:16:37

标签: java hadoop mapreduce mahout

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

1 个答案:

答案 0 :(得分:4)

引用我的电子邮件回复您:GroupLens示例与Hadoop无关。你根本不应该那样做。看起来您正试图通过Maven运行该示例,但是从Hadoop安装目录。 Hadoop不是Mahout所以当然也找不到Mahout课程。尝试从Mahout目录跑步。