Управление зависимостями с помощью Hadoop Streaming? - PullRequest
0 голосов
/ 19 мая 2010

У меня быстрый вопрос Hadoop Streaming. Если я использую потоковую передачу Python и у меня есть пакеты Python, которые требуются моим картостроителям / редукторам, но они не установлены по умолчанию, нужно ли их устанавливать на всех компьютерах Hadoop или существует какая-то сериализация, которая отправляет их удаленные машины?

Ответы [ 2 ]

2 голосов
/ 20 мая 2010

Если они не установлены в ваших окнах задач, вы можете отправить их с -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

Однако, смотрите эту проблему для предостережения:

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

1 голос
/ 16 марта 2012

Если вы используете Dumbo, вы можете использовать -libegg для распространения яичных файлов и автоматической настройки среды выполнения Python:

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

...