Можно ли добавить дополнительные 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 прямо сейчас.

  1. Есть ли способ добавить эти jar-файлы ПОСЛЕ того, как был вызван spark-submit, и просто обновить существующее приложение Spark, или это возможно только с другим spark-submit, который включает эти jar-файлы --jars?
  2. Будет ли использование режима кластера против режима клиента иметь значение в такой ситуации?

0 ответов

Другие вопросы по тегам