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?

È stato utile?

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:

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top