Ich habe Hadoop Cluster Version 2.2.0 mit Mahout 0.8 ausgeführt, ist das kompatibel? Denn wann immer ich diesen Befehl ausführen:
bin/mahout recommenditembased --input mydata.dat --usersFile user.dat --numRecommendations 2 --output output/ --similarityClassname SIMILARITY_PEARSON_CORRELATION
Gib mir diesen Fehler:
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
at org.apache.mahout.common.HadoopUtil.getCustomJobName(HadoopUtil.java:174)
at org.apache.mahout.common.AbstractJob.prepareJob(AbstractJob.java:614)
at org.apache.mahout.cf.taste.hadoop.preparation.PreparePreferenceMatrixJob.run(PreparePreferenceMatrixJob.java:75)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.run(RecommenderJob.java:158)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.main(RecommenderJob.java:312)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:72)
at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:152)
at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Oder bin ich falsch Jede Info wäre hilfreich.
Antworten:
3 für die Antwort № 1Nein, es funktioniert nicht mit Hadoop 2.x, jemand anderes hat dieselbe Fehlermeldung wie Sie.
Es scheint, dass Zumindest würde es eine Neukompilierung erfordern.
Und mehr Leute haben die gleichen Probleme: Wie kann ich Mahout für hadoop 2.0 kompilieren / verwenden?
3 für die Antwort № 2
Vor etwa einer Stunde hat Mahout Hadoop 2.x im Masterbereich offiziell unterstützt (siehe MAHOUT-1329)
Überprüfen Sie den Code hier https://github.com/apache/mahout und neu kompilieren mit:
mvn clean package -Dhadoop2.version=2.2.0
Versuchen Sie zu sehen, ob das funktioniert.
0 für die Antwort № 3
Den Quellcode erhalten Sie von github
https://github.com/apache/mahout und führen Sie den folgenden Befehl aus
mvn -Dhadoop2.version=2.2.0 -DskipTests clean install
Dann finden Sie das Release-Paket in distribution/target/