PySpark выполняет задание в автономном режиме, но с пользовательскими модулями? - PullRequest
0 голосов
/ 05 февраля 2019

Я установил искру на какой-либо машине, чтобы использовать ее в автономном режиме кластера.Так что теперь у меня есть несколько машин, которые имеют для каждой версии спарк-сборки (Spark 2.4.0, собранная на hadoop 2.7+).

Я хочу использовать этот кластер для параллельного анализа данных, и мой язык запуска - Python, поэтому я использую Pyspark, а не Spark.Я создал несколько модулей операций для обработки данных и придания им желаемой формы.

Однако я не хочу копировать вручную все эти модули, которые я создал на каждой машине, поэтому я хотел бы знать, какая опция есть в PySpark для передачи зависимостей, чтобы длякаждый исполнитель, я уверен, что модули присутствуют?

Я думал о виртуальных средах, которые будут активированы, и устанавливаю модули, но я не знаю, как это сделать в Spark.Автономный режим, в то время как в YARN Manager, кажется, эта опция, но я не буду устанавливать YARN.

Ps.Примечание: некоторые модули используют файлы данных, такие как .txt, а некоторые динамические библиотеки, такие как .dll, .so, и я хочу, чтобы они передавались исполнителям.

1 Ответ

0 голосов
/ 05 февраля 2019

Хорошим решением для распространения Spark и ваших модулей является использование Docker Swarm (надеюсь, у вас есть опыт работы с Docker).

Попробуйте взглянуть на этот репозиторий, он был очень полезен для меня в то время https://github.com/big-data-europe/docker-spark

Это хорошая база для распространения Spark.Кроме того, вы можете создавать свои собственные модули.Таким образом, вы создаете свои персональные образы Docker для распространения в Docker Hub, а затем легко распространяете их в своем кластере с помощью Docker Swarm

...