Scala Spark本地模式下的执行器数
所以我在本地模式下运行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-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实例中有一个单独的执行器,它处理所有任务