Verwalten von Abhängigkeiten mit Hadoop Streaming?
-
30-09-2019 - |
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?
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:
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