Я потратил некоторое время, пытаясь изо всех сил пытаться запустить сложное искровое приложение локально, чтобы ускорить тестирование (без необходимости упаковки и развертывания в кластере).
Некоторый контекст:
- Это искровое приложение взаимодействует с версией 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 и использует все значения по умолчанию?