07

Optimization

Skew, AQE, memory sizing, join strategies - инженерный подход.

optimization
Optimization

Контрольные задания

Ускорить skewed join через salting
Сравнить broadcast и sort-merge join
Рассчитать executor memory по формуле

Уроки модуля

1 Spark UI: рентген вашего приложения 2 Skew Detection: как увидеть skew в Task Duration и shuffle read 3 AQE: Adaptive Query Execution - включение, параметры и что оно реально делает 4 AQE Skew Join: автоматическое обнаружение и разбиение hot partitions 5 Data Skew: ручной salting - генерация ключей и двухпроходная агрегация 6 Executor Sizing: 4-компонентная формула памяти и правило 5 cores 7 Memory Fractions: spark.memory.fraction, storageFraction и tuning 8 Broadcast Join: autoBroadcastJoinThreshold, hints и Task Too Large 9 Sort-Merge Join vs Shuffle Hash Join — когда каждый применяется 10 KryoSerializer: регистрация классов и измеримый выигрыш 11 mapPartitions: connection pool паттерн для JDBC и HTTP клиентов 12 Bloom Filter Join и Dataset vs RDD — узкоспециализированные случаи 13 Кэширование: cache(), persist() и управление памятью 14 Все 5 стратегий JOIN: физика алгоритмов и управление Catalyst 15 Hardware Tuning: spark.local.dir на NVMe и memoryOverhead для Python 16 Runtime Filtering: AQE Bloom Filter push к сканированию и dynamic filtering в Star-Schema joins
Начать модуль