we know that each task is performed in one core at the time. lets say we have cluster of node with this configuration :
10 node. 16 core per node. 64 gb Ram per node.
my question is what is the difference between to have 1 executor with 16 core and 16 executor with 1 CORE ???
i mean : VS
i get inspired from this source: https://spoddutur.github.io/spark-notes/distribution_of_executors_cores_and_memory_for_spark_application.html?fbclid=IwAR3xiFLBXBkwX2SrcJFZU0tfHU7Gssp-NJstfLDSRSRZzJgK6ybvJjSVcpY
Thank in advance
dassum's answer is absolutely correct, but to dig deeper into this:
So by running 16 executors with one core each, you may see a performance drop when compared to 1 executor with 16 cores.
However!
The cluster configuration matters in this case very much. On top of that partitioning of your data is another crucial factor. In the end if you have fewer partitions than available threads you won't be utilizing all of your cluster since each partition can be processed in only one thread. Another interesting case is when you have one more partition than number of cores - which is going to double your processing time assuming roughly equal size of partitions.
1 executor with 16 core means you will have 1 JVM which can run maximum of 16 tasks
16 executor with 1 CORE means you will have 16 JVM and each JVM can run one task.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With