Что означает `[4]` в `spark-submit --master local [4]`? - PullRequest
0 голосов
/ 20 марта 2020

https://spark.apache.org/docs/latest/quick-start.html#self -contained-заявления говорит

# Use spark-submit to run your application
$ YOUR_SPARK_HOME/bin/spark-submit \
  --class "SimpleApp" \
  --master local[4] \
  target/scala-2.12/simple-project_2.12-1.0.jar

Что означает [4] в spark-submit --master local[4]?

Спасибо.

Ответы [ 3 ]

1 голос
/ 24 марта 2020

@ shashank's ответ правильный, это количество ядер, которые будут использоваться Spark при работе в локальном режиме.

Для получения подробной информации вы можете проверить код SparkContext .numDriverCores :

/**
  * The number of cores available to the driver to use for tasks such as I/O with Netty
  */
private[spark] def numDriverCores(master: String, conf: SparkConf): Int = {
  def convertToInt(threads: String): Int = {
    if (threads == "*") Runtime.getRuntime.availableProcessors() else threads.toInt
  }
  master match {
    case "local" => 1
    case SparkMasterRegex.LOCAL_N_REGEX(threads) => convertToInt(threads)
    case SparkMasterRegex.LOCAL_N_FAILURES_REGEX(threads, _) => convertToInt(threads)
    case "yarn" =>
      if (conf != null && conf.getOption("spark.submit.deployMode").contains("cluster")) {
        conf.getInt("spark.driver.cores", 0)
      } else {
        0
      }
    case _ => 0 // Either driver is not being used, or its core count will be interpolated later
  }
}

с

val LOCAL_N_REGEX = """local\[([0-9]+|\*)\]""".r
1 голос
/ 25 марта 2020

local [4] представляет количество ядер, но не рекомендуется указывать значение там. всегда лучше отдавать ядро ​​и исполнителям вне кода

1 голос
/ 20 марта 2020

Представляет количество ядер, которые будут назначены процессу spark-submit.

См. Документацию здесь: https://spark.apache.org/docs/latest/submitting-applications.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...