Wie kann ich dieses einfache Mahout-Programm erstellen / ausführen, ohne Ausnahmen zu erhalten?

8

Ich möchte diesen Code ausführen, den ich in Mahout In Action gefunden habe:

%Vor%

Ich kompiliere es mit:

%Vor%

Ich jar es:

%Vor%

Jetzt möchte ich es auf meinem lokalen Hadoop-Knoten ausführen. Ich habe es versucht:

%Vor%

Aber ich verstehe:

%Vor%

Also habe ich versucht, den Parameter libjars zu verwenden:

%Vor%

und habe das gleiche Problem. Ich weiß nicht, was ich noch versuchen soll.

Mein Ziel ist es, in der Lage zu sein, eine .csv-Datei auf dem hadoop fs in eine dünn besetzte Matrix zu lesen und sie dann mit einem zufälligen Vektor zu multiplizieren.

edit: Sieht so aus, als hätte Razvan es bekommen (Hinweis: siehe unten für eine andere Möglichkeit, dies zu tun, die nicht mit deiner Hadoop-Installation verwechselt wird). Als Referenz:

%Vor%

und dann:

%Vor%

edit: Ich versuche dies zu tun, ohne die Mahout-Gläser in die hadoop lib /

zu kopieren %Vor%

und dann natürlich:

%Vor%

und wenn ich die Mahout-Job-Datei versuche:

%Vor%

Wenn ich versuche, die .jar-Datei einzufügen, die ich gemacht habe:

%Vor%

edit: Anscheinend kann ich nur ein Glas nach dem anderen an Hadoop schicken. Das bedeutet, dass ich die Klasse, die ich gemacht habe, in die Mahout-Core-Job-Datei einfügen muss:

%Vor%

Und dann:

%Vor%

edit: Ok, jetzt kann ich es machen, ohne meine Hadoop-Installation zu stören. Ich habe die .jar in der vorherigen Bearbeitung falsch aktualisiert. Es sollte sein:

%Vor%

dann:

%Vor%     
dranxo 13.07.2012, 23:28
quelle

4 Antworten

11

Sie müssen die JAR-Datei "job" verwenden, die von Mahout bereitgestellt wird. Es packt alle Abhängigkeiten zusammen. Sie müssen auch Ihre Klassen hinzufügen. So funktionieren alle Mahout-Beispiele. Sie sollten Mahout-Jars nicht in die Hadoop-Bibliothek stellen, da diese Art von Programmen ein Programm zu tief in Hadoop "installiert".

    
Sean Owen 14.07.2012, 07:12
quelle
7

Wenn Sie Code für Beispiele aus dem Repository Ссылка übernehmen, enthält er die gebrauchsfertige Datei pom.xml für Maven. Und wenn Sie Code mit mvn package kompilieren, wird mia-0.1-job.jar im Verzeichnis target erstellt - dieses Archiv enthält alle Abhängigkeiten außer Hadoop, so dass Sie es ohne Probleme auf dem Hadoop-Cluster ausführen können

    
Alex Ott 14.07.2012 08:33
quelle
0
%Vor%     
caoimhin 11.10.2012 21:31
quelle
0

Was ich getan habe ist, den HADOOP_CLASSPATH mit meinem jar und all den Mahout jar Dateien zu setzen wie unten gezeigt.

export HADOOP_CLASSPATH = / home / xxx / mein.jar: /opt/cloudera/parcels/CDH-4.3.0-1.cdh4.3.0.p0.22/lib/mahout/mahout-core-0.7-cdh4. 3.0.jar: /opt/cloudera/parcels/CDH-4.3.0-1.cdh4.3.0.p0.22/lib/mahout/mahout-core-0.7-cdh4.3.0-job.jar: / opt / cloudera / Pakete / CDH-4.3.0-1.cdh4.3.0.p0.22 / lib / Mahout / Mahout-Beispiele-0.7-cdh4.3.0.jar: /opt/cloudera/parcels/CDH-4.3.0-1.cdh4 .3.0.p0.22 / lib / mahout / mahout-beispiele-0.7-cdh4.3.0-job.jar: /opt/cloudera/parcels/CDH-4.3.0-1.cdh4.3.0.p0.22/lib/ mahout / mahout-integration-0.7-cdh4.3.0.jar: /opt/cloudera/parcels/CDH-4.3.0-1.cdh4.3.0.p0.22/lib/mahout/mahout-math-0.7-cdh4.3.0 .jar

Dann konnte ich rennen hadoop com.meinefirma.mahout.CSVtoVector iris / nb / iris1.csv iris / nb / daten / iris.seq

Sie müssen also alle Ihre Gläser und das Mahout-Glas in den HADOOP_CLASSPATH einschließen und dann können Sie Ihre Klasse einfach mit
ausführen hadoop <classname>

    
user1456599 12.09.2013 12:52
quelle

Tags und Links