Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark本地模式下的执行器数_Scala_Apache Spark - Fatal编程技术网

Scala Spark本地模式下的执行器数

Scala Spark本地模式下的执行器数,scala,apache-spark,Scala,Apache Spark,所以我在本地模式下运行spark作业。 我使用以下命令来运行作业 spark-submit --master local[*] --driver-memory 256g --class main.scala.mainClass target/scala-2.10/spark_proj-assembly-1.0.jar 0 large.csv 100 outputFolder2 10 我在一台32核256GB内存的机器上运行这个。在创建conf时,我使用以下代码 val conf = new S

所以我在本地模式下运行spark作业。 我使用以下命令来运行作业

spark-submit --master local[*] --driver-memory 256g --class main.scala.mainClass target/scala-2.10/spark_proj-assembly-1.0.jar 0 large.csv 100 outputFolder2 10
我在一台32核256GB内存的机器上运行这个。在创建conf时,我使用以下代码

val conf = new SparkConf().setMaster("local[*]").setAppName("My App")
现在我在本地模式下,Spark在单个JVM中运行所有东西,但这是否意味着它只启动一个驱动程序,并将其用作执行器。在我的时间线中,它显示了一个执行驱动程序。 当我转到Executors页面时,只有一个executor分配了32个内核

这是默认行为吗?我原以为spark会为每个核心启动一个执行器,而不是只由一个执行器获得所有核心。如果有人能解释这种行为,那就太好了

这是默认行为吗

在本地模式下,正如您所说,驱动程序+执行器是在单个JVM进程中创建的。你所看到的不是执行者,而是你的工作有多少内核可供使用的视图。通常在本地模式下运行时,您应该只在executors视图中看到驱动程序

如果查看的代码,您将看到以下注释:

/**
 * Used when running a local version of Spark where the executor, backend, and master all run in
 * the same JVM. It sits behind a [[TaskSchedulerImpl]] and handles launching tasks on a single
 * Executor (created by the [[LocalSchedulerBackend]]) running locally.
我们在同一个JVM实例中有一个单独的执行器,它处理所有任务