Искра без SPARK_HOME

Я относительно новичок в Spark и Scala.

У меня есть приложение scala, которое работает в локальном режиме как в моем окне Windows, так и в кластере Centos.

  • Пока искра находится в моем пути к классам (например, pom.xml), искра работает как модульные тесты без необходимости в SPARK_HOME. Но тогда как мне установить такие свойства Spark, как spark.driver.memory?

  • Если у меня есть экземпляр Spark, работающий локально, мое приложение модульного тестирования, похоже, игнорирует его в локальном режиме. Я не вижу никаких выводов на консоли Spark, предполагающих, что она использует экземпляр Spark, который я запустил из командной строки (с помощью команды spark-shell). Я ошибаюсь? Если нет, как мне заставить мое приложение scala использовать этот экземпляр?

# apache-spark
Источник
  • 0
    Что именно вы называете «экземпляром искры», который вы запустили из командной строки? Что вы сделали для этого?
  • 0
    команда spark-shell, запускающая искру
  • 0
    Кстати, я знаю, что это вопрос для новичков. Я сбит с толку, потому что все руководства по запуску рекомендуют мне создать apache_home и использовать spark-shell. Но, похоже, это не связано с разработкой приложений. Что затем приводит к проблемам, когда я хочу изменить свойства искры ... что невозможно сделать из SparkSession (по крайней мере, я читал)
  • 1
    spark_shell - это просто интерактивная оболочка, она автономна и не является «экземпляром», к которому должны подключаться другие процессы. Когда вы запускаете свое искровое приложение через spark-submit (или просто запускаете свой искровый код), оно запускает свой собственный экземпляр spark. Если вам нужно установить какие-либо свойства, они могут быть основаны на свойствах системы или с помощью параметров spark-submit --conf ,
Codelisting
за 1 против
Лучший ответ

ИЗМЕНИТЬ, чтобы включить полезную информацию из комментариев


spark_shell - это просто интерактивная оболочка, она стоит отдельно и не является «экземпляром», к которому должны подключаться другие процессы. Когда вы запускаете свое искровое приложение через spark-submit (или просто запускаете свой искровый код), оно запускает собственный экземпляр spark. Если вам нужно установить какие-либо свойства, они могут быть основаны на свойствах системы или с помощью параметров spark-submit --conf.


spark-submit требует, чтобы сначала вы использовали плагин сборки maven для компиляции jar-файла приложения и зависимостей. Затем его следует развернуть в каталоге SPARK_HOME. Затем используйте сценарий отправки, который также должен быть развернут в SPARK_HOME.

Скрипт spark-submit выглядит так:

./bin/spark-submit   --class xxx.ml.PipelineStart   
--master local[*]   
./xxx/myApp-1.0-SNAPSHOT-jar-with-dependencies.jar   100

Вы можете установить параметры в своемSparkConf . Посмотрите на методы, доступные в документации .

Существуют явные методы вродеSparkConf.setMaster для установки определенных свойств. Однако, если вы не видите метода для явной установки свойства, просто используйтеSparkConf.set . Он принимает ключ и значение, и все настраиваемые свойства находятся здесь .

Если вам интересно, для чего установлено свойство, вы также можете использоватьSparkConf.get чтобы проверить это.

  • 1
    ps Вы можете установить SPARK_HOME с помощью SparkConf.setSparkHome . Я не особо разбирался в этом, поэтому не могу сказать об этом слишком много. Просто выбрось это - удачи!
Codelisting
Популярные категории
На заметку программисту