Управление зависимостями с помощью Hadoop Streaming?
У меня есть быстрый вопрос Hadoop Streaming. Если я использую потоковую передачу Python и у меня есть пакеты Python, которые требуются моим картостроителям / редукторам, но не установлены по умолчанию, нужно ли их устанавливать на всех компьютерах Hadoop или существует какая-то сериализация, которая отправляет их в удаленные машины?
2 ответа
Если они не установлены в ваших окнах задач, вы можете отправить их с -file. Если вам нужен пакет или другая структура каталогов, вы можете отправить zip-файл, который будет распакован для вас. Вот вызов 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
Однако, смотрите эту проблему для предостережения:
Если вы используете Dumbo, вы можете использовать -libegg для распространения яичных файлов и автоматической настройки времени выполнения Python:
https://github.com/klbostee/dumbo/wiki/Short-tutorial https://github.com/klbostee/dumbo/wiki/Configuration-files