簡體   English   中英

Spark本地模式下的執行程序數

[英]Number of Executors in Spark Local Mode

所以我在本地模式下運行一個火花工作。 我使用以下命令來運行該作業

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中運行所有內容,但這是否意味着它只啟動一個驅動程序並將其用作執行程序。 在我的時間線中,它顯示了一個執行器驅動程序。 當我進入Executors頁面時,只有一個執行程序,其中分配了32個核心 時間線中添加了一個執行程序

一個執行者有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.

我們在同一個JVM實例中有一個處理所有任務的執行器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM