У меня небольшой вопрос о потоковой передаче Hadoop. Если я использую потоковую передачу Python и у меня есть пакеты Python, которые требуются моим преобразователям/редукторам, но не установлены по умолчанию, нужно ли мне устанавливать их также на всех машинах Hadoop или существует какая-то сериализация, которая отправляет их в удаленные машины?
Управление зависимостями с помощью Hadoop Streaming?
comment
Этот вопрос показывает, как импортировать nltk на каждом узле. stackoverflow.com/questions/6811549/
- person viper   schedule 04.11.2013
Ответы (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
Тем не менее, см. этот вопрос для предостережения:
https://issues.apache.org/jira/browse/MAPREDUCE-596
person
Karl Anderson
schedule
19.05.2010
Если вы используете Dumbo, вы можете использовать -libegg для распространения файлов egg и автоматической настройки среды выполнения Python:
https://github.com/klbostee/dumbo/wiki/Short-tutorial#wiki-eggs_and_jars https://github.com/klbostee/dumbo/wiki/Configuration-files
person
Joe Futrelle
schedule
15.03.2012