Управление зависимостями с потоковой передачей Hadoop?

StackOverflow https://stackoverflow.com/questions/2862345

Вопрос

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

Это было полезно?

Решение

Если они не установлены на ваших полях задач, вы можете отправить их с -File. Если вам нужен пакет или другую структуру каталогов, вы можете отправить zipfile, которая будет распакована для вас. Вот при вызове Addop 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.

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top