2

学術プロジェクトの一環として、協調フィルタリング ベースのレコメンデーション システムを構築しようとしています。Mahout プロジェクトには多くの可能性があると思います。

ubuntu 10.1にMahout、hadoop、およびJavaをインストールしました。Hadoop と Java が連携して正常に動作することが確認されています。(Hadoop 単語カウント サンプル ジョブを実行)

このチュートリアルに従って、100 万のデータセットで「Taste Grouplens Example」を実行しています。次のように入力しました

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 install を実行し、examples/target/ ディレクトリに jar ファイルを生成してから、ジョブを実行する必要がある次の部分に進みました。次のように入力しました:

    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 に答える