Apache Spark — Architecture Overview
- Driver (Master):
- предоставляет API через
SparkSession
иSparkContext
; - выполняет ваш код —
.py
или скомпилированный.jar
; - контролирует выполнение задачи;
- предоставляет API через
- Workers (Executors / Slaves ):
- обрабатывают данные;
- каждый Worker работает со своим сегментом данных — Partition;
- не выполняют ваш код напрямую;
- получают задачи от Driver;
- Cluster Manager (YARN/Mesos):
- отвечает за аллокацию контейнеров, выполняющих код Driver и Workers, на кластере;
- квотирует ресурсы между пользователями;
- контролирует состояние контейнеров.
Одна партиция обрабатывается в один поток
1 Task = 1 Partition = 1 OS Thread (CPU Core)
Spark on YARN deployment modes
Cluster Deployment Mode
Client Deployment Mode