ToolsSpark Executor Sizer

Spark Executor Sizer

Optimal executor sizing with workload profiles for General ETL, ML Training, Streaming, Interactive SQL, and Hive-on-Spark

Cores: 4
Max memory: 40 GB
Overhead: 10%
Dynamic allocation: On
11
Executors / Node
109
Total Executors
19g
Memory / Executor
0.0 GB
Waste / Node

How Spark Executor Sizing Works

Spark executor sizing determines how your cluster resources are divided among parallel task executors. The key parameters are executor cores (parallelism within each executor), executor memory (heap available for computation and caching), and memory overhead (off-heap memory for internal Spark bookkeeping and network buffers).

This calculator starts from your per-node hardware, divides vcores by executor cores to find how many executors fit per node, then allocates memory proportionally. One executor slot is reserved cluster-wide for the YARN ApplicationMaster container that coordinates the Spark job.

Workload profiles provide sensible defaults: streaming jobs favour smaller executors with lower overhead, ML training benefits from larger memory allocations with higher overhead ratios, and general ETL balances core count and memory for broad shuffle-heavy workloads. The sanity checks validate that your configuration avoids common pitfalls like excessive GC pressure or wasted node resources.