Что означает 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
.