spark-submit и spark-shell

Существует два способа запуска задач Spark (jobs) в кластере. Вы можете запустить задачу на любом хосте, где установлен Spark client:

  • spark-submit. Позволяет выполнять команды в интерактивном режиме, используя оболочку Scala, Python, или R.

  • spark-shell. Создает приложение Spark, которое выполняется в интерактивном/batch режиме, используя Scala, Python, R, или Java.

Также вы можете использовать Livy для создания и управления Spark-приложениями в кластере. Livy — это сервис Spark, позволяющий локальным и удаленным приложениям взаимодействовать с Spark через открытый REST-интерфейс. Также Livy предоставляет дополнительные возможности в области безопасности и разделяемого доступа.

Запуск через spark-submit

Чтобы запустить приложение Spark в кластере, используйте скрипт bin/spark-submit. Такой подход позволяет использовать все типы планировщиков, которые поддерживает Spark, через единый интерфейс. Также это дает возможность не настраивать каждое приложение под отдельный планировщик.

Если код вашего приложения содержит зависимости из других проектов, необходимо включить все зависимости в архив приложения, чтобы оно могло отработать в кластере Spark. Для этого, создайте jar-файл (или uber-jar), который содержит код и зависимости. Вы можете использовать плагины sbt или Maven. При создании jar укажите тип зависимостей Spark и Hadoop как provided; эти зависимости необязательно включать в бандл, так как планировщик кластера предоставляет их во время выполнения.

После того, как ваш uber-jar собран, вы можете запустить jar, используя скрипт bin/spark-submit. Данный скрипт автоматически настраивает путь к классам Spark и зависимостям. Скрипт поддерживает различные планировщики кластера и режимы деплоя.

Более детальную информации можно найти на странице Submitting Applications документации Spark.

Запуск через spark-shell

Оболочка Spark позволяет быстро ознакомиться с API, а также служит мощным инструментом для интерактивного анализа данных. Вы можете начать работу с API в интерактивном режиме, запустив Scala-оболочку (скрипт spark-shell). Обратите внимание, что каждая запущенная оболочка создает новый объект SparkContext в переменной sc. Scala-оболочка работает в Java VM и имеет широкую поддержку Java-библиотек. Чтобы запустить оболочку, выполните следующую команду в директории Spark:

$ ./bin/spark-shell
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней