Запуск Spark из локальной IDE - PullRequest
0 голосов
/ 07 февраля 2019

Я потратил некоторое время, пытаясь изо всех сил пытаться запустить сложное искровое приложение локально, чтобы ускорить тестирование (без необходимости упаковки и развертывания в кластере).

Некоторый контекст:

  • Это искровое приложение взаимодействует с версией Datastax Enterprise Cassandra и их распределенной файловой системой, поэтому необходимо предоставить несколько явных jar-файлов (недоступно в Maven)
  • Эти банки доступны на моем локальном компьютере, и для "сыра" я попытался поместить их в SPARK_HOME / jars, чтобы они автоматически добавлялись в classpath
  • Я пытался сделать что-то подобноес необходимыми настройками конфигурации, поместив их в spark-defaults.conf в SPARK_HOME / conf
  • . При создании этого приложения мы не собираем uber jar, а скорее выполняем spark-submit на сервере, используя -jars

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я запускаю Spark Application через мою IDE, кажется, что он не получает ни одного из этих дополнительных элементов от директора SPARK_HOME (config или jars).Я потратил несколько часов, пытаясь заставить элементы конфигурации работать, и закончил тем, что установил их как значения System.property в моем тестовом примере перед запуском сеанса spark, чтобы Spark мог их подобрать, чтобы параметры конфигурации можно было игнорировать.

Однако я не знаю, как воспроизвести это для файлов JAR, специфичных для поставщика.Есть ли простой способ, которым я могу эмулировать поведение --jars, которое делает spark-submit, и какой-то дом настроил мой сеанс spark с этим значением jar?Примечание: я использую в своем коде следующую команду для запуска сеанса спарка:

SparkSession.builder().config(conf).getOrCreate()

Дополнительная информация, если она помогает:

  • Версия Spark, которую я имею локально вSPARK_HOME - это та же версия, с которой мой код компилируется с использованием Maven.
  • Я задал еще один вопрос, похожий на этот, связанный с конфигами: Загрузка Spark Config для тестирования Spark Applications
  • Когда я печатаю переменную среды SPARK_HOME в моем приложении, я получаю правильное значение SPARK_HOME, поэтому я не уверен, почему ни файлы конфигурации, ни файлы jar не извлекаются отсюда.Возможно ли, что при запуске приложения из моей среды IDE оно не получает переменную среды SPARK_HOME и использует все значения по умолчанию?

1 Ответ

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

Вы можете использовать .config(key, value) при создании SparkSession, передавая "spark.jars" в качестве ключа и разделенный запятыми список путей к банке, например:

SparkSession.builder().config("spark.jars", "/path/jar1.jar, /path/jar2.jar").config(conf).getOrCreate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...