spark-submit
Скрипт spark-submit
используется для запуска приложений в кластере.
Скрипт расположен в директории bin.
Пример вызова скрипта spark-submit
представлен ниже:
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
Где:
-
--class
— точка входа вашего Spark-приложения (например,org.apache.spark.examples.SparkPi
). -
--master
— мастер URL кластера (например, spark://23.195.26.187:7077). -
--deploy-mode
— определяет, следует ли развернуть драйвер на рабочих узлах (значениеcluster
) или локально в качестве внешнего клиента (client
, значение по умолчанию). -
--conf
— произвольные конфигурационные свойства Spark в форматеkey=value
. Значения, содержащие пробелы, следует заключать в кавычки ("key1"="value 1"
). Чтобы передать несколько пар конфигураций, их необходимо указать отдельными аргументами (например,--conf <key>=<value> --conf <key2>=<value2>
). -
<application-jar>
— путь к JAR-файлу, который содержит код вашего приложения и все зависимости. URL должен быть доступен внутри вашего кластера. К примеру, это могут быть пути hdfs://* или file://*, доступные на всех узлах. -
[application-arguments]
— параметры, которые необходимо передать главному методу главного класса.
Master URL
Мастер URL, передаваемый в Spark, может быть в одном из следующих форматов:
URL | Описание |
---|---|
local |
Запускает Spark локально с одним рабочим потоком (без параллелизма) |
local[K] |
Запускает Spark локально, используя K рабочих потоков (оптимальным значением K является значение, равное количеству ядер ЦПУ) |
local[K,F] |
Запускает Spark локально, используя K рабочих потоков и F |
local[*] |
Запускает Spark локально с количеством рабочих потоков, равным количеству логических ядер на машине |
local[*,F] |
Запускает Spark локально с количеством рабочих потоков, равным количеству логических ядер на машине, и F |
local-cluster[N,C,M] |
Режим local-cluster используется только для unit-тестирования. В этом режиме распределенный кластер эмулируется в JVM, где N — количество worker, C — количество ядер на один worker и M — память на один worker в МиБ |
spark://HOST:PORT |
Соединяется с указанным Spark-кластером в автономном режиме (standalone mode). Значение PORT должно соответствовать порту, который используется на вашем кластере. По умолчанию используется порт 7077 |
spark://HOST1:PORT1,HOST2:PORT2 |
URL для соединения с указанным Spark-кластером в автономном режиме (standalone mode) с использованием резервных мастер-узлов и ZooKeeper. В списке должны быть указаны все мастер-хосты, настроенные для работы с ZooKeeper в режиме высокой доступности. Значение PORT должно соответствовать порту, который используется на вашем кластере. По умолчанию используется порт 7077 |
mesos://HOST:PORT |
URL для соединения c Mesos-кластером.
Значение PORT должно соответствовать порту, который используется на вашем кластере.
По умолчанию используется порт 5050
Также для соединения с Mesos-кластером, использующим ZooKeeper, используйте |
yarn |
URL для соединения c YARN-кластером в режиме клиента или кластера, в зависимости от значения параметра |
k8s://HOST:PORT |
URL для соединения c Kubernetes-кластером в режиме клиента или кластера, в зависимости от значения параметра |