Что означает setMaster 'local [*]' для spark?

Я нашел код для запуска искры локально с помощью

val conf = new SparkConf().setAppName("test").setMaster("local[*]")
val ctx = new SparkContext(conf)

Что означает [*]?

Ответы

Ответ 1

Из doc:

./bin/spark-shell --master local[2]

Параметр --master указывает главный URL для распределенного кластер или локальный для локального запуска с одним потоком или локальным [N] для запуска локально с N потоками. Вы должны начать с использования локального для тестирования.

И из здесь:

local [*] Запустить Spark локально с таким количеством рабочих потоков, что и логический на вашей машине.

Ответ 2

Мастер URL Значение


local: запускать Spark локально с одним рабочим потоком (т.е. вообще без параллелизма).


local [K]: запускать Spark локально с K рабочими потоками (в идеале, установите это число ядер на вашем компьютере).


local [K, F]: локально запускать Spark с K рабочими потоками и F maxFailures (объяснение этой переменной см. в spark.task.maxFailures)


local [*]: Запустите Spark локально, используя столько рабочих потоков, сколько логических ядер на вашем компьютере.


local [*, F]: запускать Spark локально, используя столько рабочих потоков, сколько логических ядер на вашей машине и F maxFailures.


spark://HOST: PORT: подключиться к указанному автономному мастеру кластера Spark. Порт должен быть тем, который ваш мастер настроил для использования (по умолчанию 7077).


spark://HOST1: PORT1, HOST2: PORT2: подключение к данному отдельному кластеру Spark с резервными мастерами с помощью Zookeeper. В списке должны быть все главные хосты в кластере высокой доступности, настроенные с помощью Zookeeper. Порт должен быть тем, который настроен для использования каждым мастером (по умолчанию 7077).


mesos://HOST: PORT: подключиться к данному кластеру Mesos. Порт должен быть тем, который настроен для использования (по умолчанию 5050). Или, для кластера Mesos, использующего ZooKeeper, используйте mesos://zk://.... Для отправки с кластером --deploy-mode, HOST: PORT должен быть настроен для подключения к MesosClusterDispatcher.


yarn: подключение к кластеру YARN в режиме клиента или кластера в зависимости от значения параметра --deploy-mode. Местоположение кластера будет найдено на основе переменной HADOOP_CONF_DIR или YARN_CONF_DIR.

https://spark.apache.org/docs/latest/submitting-applications.html

Ответ 3

Дополнительная информация

Не запускайте программы Spark Streaming локально с мастером, настроенным как "local" или "local [1]". Это выделяет только один процессор для задач, и если на нем работает приемник, для обработки полученных данных не осталось ресурсов. Используйте, по крайней мере, "local [2]", чтобы иметь больше ядер.

Из-за искры Искры: быстрый анализ больших объемов данных

Ответ 4

Главный URL

Вы можете запустить Spark в локальном режиме, используя local, local[n] или самый общий local[*] для главного URL.

URL говорит, сколько потоков может быть использовано в общей сложности:

local использует только 1 поток.

local[n] использует n потоков.

local[*] использует столько потоков, сколько число процессоров доступно для виртуальной машины Java (он использует Runtime.getRuntime.availableProcessors() чтобы узнать число).

local[N, maxFailures] ( так называемый локальный с повторных попыток) с N быть * или количество используемых потоков (как описано выше) и maxFailures быть значение spark.task.maxFailures.