Я пишу сервис, который запускается в давно работающем приложении Spark из спарк-отправки. Служба не будет знать, какие jar-файлы нужно поместить на пути к классам, к моменту первоначальной отправки искры, поэтому я не могу включить ее, используя --jars
. Затем этот сервис будет прослушивать запросы, которые могут включать дополнительные jar-файлы, которые я затем хочу загрузить на свои искровые узлы, чтобы можно было выполнить работу с использованием этих jar-файлов.
Моя цель - вызвать spark submit только один раз, будучи в самом начале, чтобы запустить мой сервис. Затем я пытаюсь добавить jar-файлы из запросов к сеансу spark, создавая новый 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 прямо сейчас.
- Есть ли способ добавить эти банки ПОСЛЕ
вызвал и просто обновил существующее приложение Spark, или это возможно только с другой отправкой искры, которая включает эти jar-файлы, используя
--jars
?
- Будет ли использование режима кластера против режима клиента иметь значение в такого рода
ситуация?