Gestire dipendenze con Hadoop in Streaming?
-
30-09-2019 - |
Domanda
Ho una domanda veloce Hadoop in streaming. Se sto usando Python lo streaming e ho package Python che i miei mapper / riduttori richiedono, ma non sono installati di default Devo installare quelli su tutte le macchine Hadoop così o c'è una sorta di serializzazione che li invia al macchine remote?
Soluzione
Se non sono installati sul vostro box attività, è possibile inviarli con -file. Se avete bisogno di un pacchetto o altra struttura di directory, è possibile inviare un file zip, che sarà decompressi per voi. Ecco un'invocazione Haddop 0,17:
$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
Tuttavia, vedere questo problema per un avvertimento:
Altri suggerimenti
Se si utilizza Dumbo è possibile utilizzare -libegg per distribuire i file d'uovo e auto-configurare il runtime di Python:
https://github.com/klbostee/dumbo/wiki/ breve dimostrativi # wiki-eggs_and_jars https://github.com/klbostee/dumbo/wiki/Configuration-files