Можно ли добавить дополнительные jar-файлы к основным / рабочим узлам ПОСЛЕ подачи искры во время выполнения?
Я пишу сервис, который работает на долгосрочном Spark-приложении из spark-отправки. Служба не будет знать, какие jar-файлы нужно поместить на пути к классам, к моменту первоначальной отправки искры, поэтому я не могу включить ее, используя --jars
, Затем этот сервис будет прослушивать запросы, которые могут включать дополнительные jar-файлы, которые я затем хочу загрузить на свои искровые узлы, чтобы можно было выполнить работу с использованием этих jar-файлов.
Моя цель состоит в том, чтобы вызвать спарк подать только один раз, будучи в самом начале, чтобы запустить мой сервис. Затем я пытаюсь добавить банки из запросов к сеансу спарк путем создания нового SparkConf
и строительство нового SparkSession
из этого что-то вроде
SparkConf conf = new SparkConf();
conf.set("spark.driver.extraClassPath", "someClassPath")
conf.set("spark.executor.extraClassPath", "someClassPath")
SparkSession.builder().config(conf).getOrCreate()
Я попробовал этот подход, но похоже, что файлы jar не загружаются в пути к классам исполнителя, поскольку мои задания не распознают пользовательские функции из файлов jar. Я пытаюсь запустить это в режиме клиента Spark прямо сейчас.
- Есть ли способ добавить эти jar-файлы ПОСЛЕ того, как был вызван spark-submit, и просто обновить существующее приложение Spark, или это возможно только с другим spark-submit, который включает эти jar-файлы
--jars
? - Будет ли использование режима кластера против режима клиента иметь значение в такой ситуации?