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 maxFailures (больше информации доступно в описании spark.task.maxFailures)

local[*]

Запускает Spark локально с количеством рабочих потоков, равным количеству логических ядер на машине

local[*,F]

Запускает Spark локально с количеством рабочих потоков, равным количеству логических ядер на машине, и F maxFailures

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, используйте mesos://zk://…​. При использовании --deploy-mode, пара HOST:PORT должна указывать на MesosClusterDispatcher

yarn

URL для соединения c YARN-кластером в режиме клиента или кластера, в зависимости от значения параметра --deploy-mode. Расположение кластера определяется с помощью переменных HADOOP_CONF_DIR или YARN_CONF_DIR

k8s://HOST:PORT

URL для соединения c Kubernetes-кластером в режиме клиента или кластера, в зависимости от значения параметра --deploy-mode. Значения HOST и PORT относятся к Kubernetes API Server. По умолчанию соединение использует TLS. Чтобы принудительно использовать незащищенное соединение, используйте URI типа k8s://http://HOST:PORT

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней