La gestión de dependencias con Hadoop Streaming?
-
30-09-2019 - |
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?
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:
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