Pregunta

Tengo una pregunta rápida Hadoop Streaming. Si estoy usando Python transmisión y tengo los paquetes de Python que mis aplicadores / reductores requieren pero no se instalan por defecto ¿Es necesario instalar los de todas las máquinas de Hadoop así o hay algún tipo de serialización que los envía a la máquinas remotas?

¿Fue útil?

Solución

Si no están instalados en sus cajas de tareas, puede enviarlos con -file. Si necesita un paquete u otra estructura de directorios, puede enviar un archivo zip, que será descomprimido para usted. He aquí una invocación 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

Sin embargo, esta cuestión para ver una advertencia:

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

Otros consejos

Si utiliza Dumbo puede utilizar -libegg para distribuir archivos de huevo y auto-configuración del tiempo de ejecución de Python:

https://github.com/klbostee/dumbo/wiki/ a corto tutorial # wiki-eggs_and_jars https://github.com/klbostee/dumbo/wiki/Configuration-files

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top