gpt4 book ai didi

scala - Spark Local模式下的执行器数量

转载 作者:行者123 更新时间:2023-12-04 07:32:56 25 4
gpt4 key购买 nike

因此,我在本地模式下运行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 RAM的计算机上运行此程序。创建conf时,请使用以下代码
val conf = new SparkConf().setMaster("local[*]").setAppName("My App")

现在,我现在处于本地模式,Spark在单个JVM中运行所有内容,但这意味着它仅启动一个驱动程序并将其用作执行程序。在我的时间轴中,它显示添加了一个执行程序驱动程序。
当我进入“执行程序”页面时,只有一个执行程序被分配了32个内核
One Executor Added in Time Line

One Executor with 32 Cores
这是默认行为吗?我期望spark将为每个核心启动一个执行程序,而不是仅一个获得所有核心的执行程序。如果有人可以解释这种行为,那将是很好的

最佳答案

Is this the default behavior?



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

如果查看 LocalSchedulerBackend 的代码,则会看到以下注释:
/**
* 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实例执行器中只有一个可以处理所有任务。

关于scala - Spark Local模式下的执行器数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44590284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com