如何在Spark集群的work節點上啟動多個Executor?


如何在Spark集群的work節點上啟動多個Executor?

 

默認情況下,Spark集群下的worker,只會啟動一個Executor只運行了一個 CoarseGrainedExecutorBackend 進程。Worker 通過持有 ExecutorRunner 對象來控制 CoarseGrainedExecutorBackend 的啟停。
那么如何啟動多個executor呢?通過設置參數來解決:

1、設置每個executor使用的cpu數為4

spark.executor.cores 4

2、限制cpu使用數量,這里會啟動3個executor(12/4)

spark.cores.max 12  

3、設置每個executor的內存大小為8g

spark.executor.memory 12g

以上設置將會啟動3個executor,每個executor使用4cpu,12gRAM。 
總共占用worker資源12cpu,36gRAM。

Spark1.6的源碼部分為:

protected final String EXECUTOR_MEMORY = "--executor-memory";
protected final String TOTAL_EXECUTOR_CORES = "--total-executor-cores";
protected final String EXECUTOR_CORES = "--executor-cores";

也可以在提交任務的時候添加:

SparkSubmit --class com.dyq.spark.MyClass --master:spark://master:7077  --total-executor-cores 12 --executor-cores 24 --executor-memory 12g


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM