Has*_*lil 8 scala apache-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
Run Code Online (Sandbox Code Playgroud)
我在一台32核和256GB RAM的机器上运行它.创建conf时,请使用以下代码
val conf = new SparkConf().setMaster("local[*]").setAppName("My App")
Run Code Online (Sandbox Code Playgroud)
现在我现在处于本地模式,Spark在一个JVM中运行所有内容,但这是否意味着它只启动一个驱动程序并将其用作执行程序.在我的时间线中,它显示了一个执行器驱动程序.当我进入Executors页面时,只有一个执行程序,其中分配了32个核心
这是默认行为吗?我期待spark会为每个核心启动一个执行程序,而不是只有一个执行者可以获得所有核心.如果有人可以解释这种行为,那就太好了
这是默认行为吗?
在本地模式下,正如您所说,您的驱动程序+执行程序是在单个JVM进程中创建的.你所看到的不是执行者,而是你的工作在一次性使用的核心数量.通常在本地模式下运行时,您应该只在执行程序视图中看到驱动程序.
如果您查看代码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.
Run Code Online (Sandbox Code Playgroud)
我们在同一个JVM实例中有一个处理所有任务的执行器.
归档时间: |
|
查看次数: |
3771 次 |
最近记录: |