[英]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個核心
這是默認行為嗎? 我期待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.