Frage

ich eine schnelle Hadoop Streaming Frage haben. Wenn ich Python bin mit Streaming und ich habe Python-Pakete, dass mein Mapper / Reduzierungen erfordern, sind jedoch nicht standardmäßig installiert benötige ich auch diejenigen auf allen Hadoop Maschinen zu installieren oder gibt es irgendeine Art von Serialisierung, die sie an die Sends Remote-Rechner?

War es hilfreich?

Lösung

Wenn sie auf Ihre Aufgabe Boxen nicht installiert sind, können Sie sie mit -datei senden. Wenn Sie ein Paket oder andere Verzeichnisstruktur benötigen, können Sie eine Zip-Datei senden, die für Sie ausgepackt werden. Hier ist eine Haddop 0.17 Aufruf:

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-0.17.0-streaming.jar -mapper mapper.py -reducer reducer.py -input input/foo -output output -file /tmp/foo.py -file /tmp/lib.zip

Allerdings sieht dieses Problem für eine Einschränkung:

https://issues.apache.org/jira/browse/MAPREDUCE-596

Andere Tipps

Wenn Sie Dumbo verwenden, können Sie verwenden -libegg auf Ei-Dateien und automatische Konfiguration der Python-Laufzeit zu verteilen:

https://github.com/klbostee/dumbo/wiki/ Short-Tutorial # wiki-eggs_and_jars https://github.com/klbostee/dumbo/wiki/Configuration-files

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top