Разница в запуске приложения spark с помощью sbt run или сценария spark-submit - PullRequest
0 голосов
/ 23 декабря 2018

Я новичок в Spark и, изучая этот фреймворк, я понял, что, насколько мне известно, есть два способа запуска приложения spark при написании на Scala:

  1. Упакуйте проект в файл JAR, а затем запустите его с помощью сценария spark-submit.
  2. Запуск проекта напрямую с помощью команды sbt.

Мне интересно, в чем разница междуэти два режима выполнения могут быть, особенно при запуске с sbt run может генерировать исключение java.lang.InterruptedException, когда он отлично работает с spark-submit.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

SBT - это инструмент для сборки (который мне нравится работать в Linux), который не обязательно подразумевает использование SPARK.Так получилось, что он используется как IntelliJ для приложений Spark.

Вы можете пакетировать и запускать приложение в одной JVM под консолью SBT, но не в масштабе.Таким образом, если вы создали приложение Spark с указанными зависимостями, SBT скомпилирует код с package и создаст JAR-файл с необходимыми зависимостями и т. Д. Для запуска локально.

Вы также можете использовать опцию assembly в SBT, которая создает uber jar или fat jar со всеми зависимостями, содержащимися в jar, которые вы загружаете в кластер и запускаете черезвызывая spark-submit .Итак, еще раз, если вы создали приложение Spark с указанными зависимостями, SBT выполнит сборку, скомпилирует код и создаст файл Uber JAR со всеми необходимыми зависимостями и т. Д., За исключением внешних файлов, которые необходимо отправить в Workers, чтобызапустить на своем кластере (в общем).

0 голосов
/ 26 декабря 2018

Spark Sbt и Spark-submit - это две совершенно разные вещи

  1. Spark sbt - это инструмент для сборки .Если вы создали приложение spark, sbt поможет вам скомпилировать этот код и создать файл jar с необходимыми зависимостями и т. Д.
  2. Spark-submit используется для отправки задания spark в менеджер кластера.Вы можете использовать автономный, Mesos или Yarn в качестве менеджера кластера.spark-submit отправит вашу работу менеджеру кластера, и ваша работа начнется в кластере.

Надеюсь, это поможет.

Приветствия!

...