Ich bin ein Neuling, der versucht zu verstehen, wie Mahout und Hadoop für kollaboratives Filtern verwendet werden. Ich habe Single-Node-Cassandra-Setup. Ich möchte Daten von Cassandra holen
Wo finde ich klare Installationsschritte für Hadoop und dann Mahout für die Arbeit mit Cassandra?
(Ich denke, das ist dieselbe Frage, die Sie gerade bei [email protected] gestellt haben. Kopieren meiner Antwort.)
Sie brauchen Hadoop überhaupt nicht, und wenn nicht, würde ich vorschlagen, dass Sie es nicht zur Vereinfachung verwenden. Es ist "notwendiges Übel", über einen bestimmten Punkt hinaus zu skalieren.
Sie können Daten über Cassandra haben, aber Sie werden in der Lage sein, sie in den Speicher einzulesen. Wenn Sie als Datei einen Dump erstellen können, können Sie FileDataModel verwenden. Oder Sie können den Code in FileDataModel emulieren, um einen auf Cassandra basierenden Code zu erstellen.
Dann sind Ihre zwei Bedürfnisse leicht zu beantworten:
Das ist nicht einmal eine Empfehlung Problem. Wählen Sie einfach eine Implementierung von UserSimilarity, und verwenden Sie es zu einen Benutzer mit allen anderen vergleichen und Wählen Sie die mit den höchsten Ähnlichkeit. (Einwickeln mit CachingUserSimilarity hilft a viel.)
Dies ist nur ein Empfehler Problem. Benutze einen GenericUserBasedRecommender mit Ihre UserSimilarity und DataModel und du bist fertig.
Es kann natürlich viel komplexer werden, aber das ist ein guter Anfang.
Wenn Sie später Hadoop verwenden, müssen Sie Hadoop gemäß seinen Anweisungen einrichten. Es gibt kein Mahout "Setup". Bei Empfehlern würden Sie sich eine der RecommenderJob-Klassen ansehen, die die erforderlichen Jobs in Ihrem Hadoop-Cluster aufruft. Sie würden es mit dem Befehl "hadoop" ausführen - auch hier müssten Sie Hadoop verstehen.
Das Buch Mahout in Action schreibt die meisten Mahout-Hadoop-Jobs detailliert auf.
Ich folgte Ссылка ... was auf eine "hadoop-jar" -Syntax hindeutet, die nur gab mir Fehler. Das Buch hat stattdessen "Jar", und mit diesem Fix läuft mein Test-Job glücklich.
Folgendes habe ich getan:
hat das Dienstprogramm unter Ссылка um eine CSV-Darstellung meiner Matrix in ein Mahout-Dateiformat zu konvertieren. In das Hadoop-Dateisystem kopiert.
Hochgeladene mahout-examples-0.5-SNAPSHOT-job.jar von einem frisch gebauten Mahout auf meinem Laptop, auf die Controlbox des Hadoop-Clusters. Kein anderes Mahoutzeug dort.
Lief dies: (setzt voraus, dass hadoop konfiguriert ist; was ich mit dfs -ls / user / danbri bestätige)
hadoop jar ./mahout-examples-0.5-SNAPSHOT-job.jar \ org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver \ --input svdooutput.mht --output outpath --numRows 0 --numCols 4 --Rank 50
... jetzt, ob ich das richtig gemacht habe, ist eine ganz andere Sache, aber es scheint etwas zu tun!