2016-04-06 8 views
1

Ich bin ein Neuling für Apache Mahout. Ich benutze Apache Mahout 0.11.2. Um es zu versuchen habe ich eine Java-Klasse namens sampereccommender.java erstellt, wie unten gezeigt.Benutzerdefinierte Empfehler Jobs mit Apache Mahout 0.11.2 über Hadoop

package f; 
import java.io.File; 
import java.io.IOException; 
import org.apache.mahout.cf.taste.common.TasteException; 
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel; 
import org.apache.mahout.cf.taste.impl.neighborhood.ThresholdUserNeighborhood; 
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender; 
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity; 
import org.apache.mahout.cf.taste.model.DataModel; 
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood; 
import org.apache.mahout.cf.taste.recommender.RecommendedItem; 
import org.apache.mahout.cf.taste.recommender.UserBasedRecommender; 
import org.apache.mahout.cf.taste.similarity.ItemSimilarity; 
import org.apache.mahout.cf.taste.similarity.UserSimilarity; 
import java.util.List; 

public class SampleReccommender { 
    public static void main(String args[]){ 
     try{ 
      DataModel datamodel = new FileDataModel(new File(args[0])); 
      //Creating UserSimilarity object. 
      UserSimilarity usersimilarity = new PearsonCorrelationSimilarity(datamodel); 
      //Creating UserNeighbourHHood object. 
      UserNeighborhood userneighborhood = new ThresholdUserNeighborhood(1.0, usersimilarity, datamodel); 
      //Create UserRecomender 
      UserBasedRecommender recommender = new GenericUserBasedRecommender(datamodel, userneighborhood, usersimilarity); 
      List recommendations = (List) recommender.recommend(2, 3); 
      System.out.println(recommendations.size()); 
      for (int i=0; i< recommendations.size();i++) { 
       System.out.println(recommendations.get(i)); 
      } 
     } 
catch(Exception e){ 
    e.printStackTrace(); 
} 
}} 

konnte ich aus demselben Code von der Kommandozeile als
java -cp N.jar f.SampleReccommender n_lib/wishlistdata.txt

Jetzt laufen, was ich im Internet und Buch zu lesen " Mahout in Aktion "Ich habe verstanden, dass derselbe Code mit folgenden Befehlen auf hadoop ausgeführt werden kann. zuerst muss ich meine SampleReccommender.java in vorhandene Apache-Mahout-Distribution-0.11.2/Mahout-Herr-0.11.2-Job.jar aufnehmen. Also folge ich folgendem Vorgehen.

jar uf /Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar samplerecommender.jar

dann habe ich versucht Mahout Job läuft mit folgender Befehl

ist/hadoop jar /Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar org.apache.mahout.cf.taste.hadoop .item.RecommenderJob -i /input/wishlistdata.txt -o/output/--recommenderClassName \ f.SampleRecommender

Aber es gibt mir einen Fehler wie:

Unexpected --recommenderClassName während Job-spezifische Optionen Verarbeitung:

ich oben Befehl über die Syntax „Mahout in Aktion“ Buch gegeben versuchte basiert, die wie unten

erwähnt ist

hadoop-jar mahout-core-0.5-job.jar \ org.apache.mahout.cf.taste.hadoop.pseudo.RecommenderJob \ -Dmapred.input.dir = input/ua.base.hadoop \ -Dmapred.output .dir = Ausgabe \ --recommenderClassName \ org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender

Mache ich etwas falsch? Sagen Sie mir auch, ob der Code, den ich für die Standalone-Implementierung verwendet habe, auch für RecommenderJobs verwendet werden kann oder ob die Implementierung unterschiedlich ist?

Antwort

0

Mahout in Aktion ist veraltet und der Code, den Sie verwenden, wird nicht weiter unterstützt.

Heutzutage läuft Mahout auf moderneren Rechnerplattformen wie Spark. Für den neuesten Mahout Recommender können Sie mit dem Command Line Interface beginnen, um ähnliche Objekte zu erstellen und in Solr oder Eleasticsearch zu integrieren. Oder Sie können Pickup eine voll integrierte End-to-End-Lösung unter unten stehendem Link:

Verwandte Themen