Управление зависимостями с потоковой передачей Hadoop?
-
30-09-2019 - |
Вопрос
У меня есть 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
Тем не менее, см. Эта проблема для предостережения:
Другие советы
Если вы используете DUMBO, вы можете использовать -libegg для распространения файлов яйца и автоконструкцию Python Runtime:
https://github.com/klbostee/dumbo/wiki/short-tutorial#wik-eggs_and_jars.https://github.com/klbostee/dumbo/wiki/Configuration-files.