Можно ли добавить дополнительные jar-файлы к основным / рабочим узлам ПОСЛЕ подачи искры во время выполнения? - PullRequest
1 голос
/ 19 марта 2019

Я пишу сервис, который запускается в давно работающем приложении 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 прямо сейчас.

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