I'm using Spark + Standalone cluster manager. I have 5 worker nodes, each worker node has 2 cores and 14 GB of RAM.
How can I figure out how much JVMs Spark will start on worker nodes?
Use case 1
I start application/session with configs
spark.executor.cores=2 spark.executor.memory=10GB
At this moment Spark starts one executor's JVM on each worker node, right?
Then I start another Spark application/session before the first session is in progress with configs
spark.executor.cores=2 spark.executor.memory=4GB
At this moment there are two JVMs on each worker node, right?
Use case 2
I start application/session with configs:
sstsp.spark.shuffle.service.enabled=true
sstsp.spark.dynamicAllocation.enabled=true
sstsp.spark.dynamicAllocation.maxExecutors=35
sstsp.spark.executor.cores=2
sstsp.spark.executor.memory=2GB
That means each worker node will launch 7 executors (JVMs) each 2 GB RAM, right?
P.S.
How big is an overhead of JVM? I mean how much RAM won't be used for computation purposes in Use Case 2 where node's RAM is divided among 7 JVMs?