13 параметров Spark, которые стоит знать перед собеседованием
Надеюсь все правильно ответили в предыдущем опросе, но в любом случае советую освежить память или узнать что-то новое🔥Перечислил самые популярные параметры Spark, которые реально встречается в конфигах и на проде
💦 Ресурсы
spark.executor.instances
— сколько executors поднимется для приложения.
spark.executor.cores
— сколько ядер выделяем на один executor.
spark.executor.memory
— heap-память executor’а.
spark.executor.memoryOverhead
— память вне heap: Python worker’ы, native memory, shuffle buffers и другие внехиповые расходы.
spark.driver.memory / spark.driver.cores
— ресурсы драйвера.
😶🌫️Параллелизм
spark.default.parallelism
— дефолтное число партиций для RDD-операций.
spark.sql.shuffle.partitions
— число партиций после shuffle в Spark SQL.
spark.sql.files.maxPartitionBytes
— максимальный размер данных на одну input partition при чтении файлов.
spark.sql.files.openCostInBytes
— помогает Spark лучше группировать мелкие файлы при чтении.
🤩Оптимизация
spark.sql.adaptive.enabled
— включает AQE: Spark может динамически менять число shuffle-партиций и улучшать план выполнения.
spark.sql.autoBroadcastJoinThreshold
— порог, при котором Spark может выбрать Broadcast Join.
spark.dynamicAllocation.enabled
— динамически увеличивает и уменьшает число executors.
spark.sql.adaptive.skewJoin.enabled
— помогает бороться с data skew на join’ах.
Если коротко: на собесе важно не просто помнить названия, а понимать, за что отвечает каждый параметр — ресурсы, параллелизм, shuffle, память и join-стратегии
🐈Полезные статьи:
⏺Подбираем параметры сессии в Apache Spark
⏺Как правильно просить ресурсы и как понять, сколько нужно брать
⏺6 сегментов памяти Apache Spark и параметры их конфигурирования
Надеюсь все правильно ответили в предыдущем опросе, но в любом случае советую освежить память или узнать что-то новое🔥Перечислил самые популярные параметры Spark, которые реально встречается в конфигах и на проде
💦 Ресурсы
spark.executor.instances
— сколько executors поднимется для приложения.
spark.executor.cores
— сколько ядер выделяем на один executor.
spark.executor.memory
— heap-память executor’а.
spark.executor.memoryOverhead
— память вне heap: Python worker’ы, native memory, shuffle buffers и другие внехиповые расходы.
spark.driver.memory / spark.driver.cores
— ресурсы драйвера.
😶🌫️Параллелизм
spark.default.parallelism
— дефолтное число партиций для RDD-операций.
spark.sql.shuffle.partitions
— число партиций после shuffle в Spark SQL.
spark.sql.files.maxPartitionBytes
— максимальный размер данных на одну input partition при чтении файлов.
spark.sql.files.openCostInBytes
— помогает Spark лучше группировать мелкие файлы при чтении.
🤩Оптимизация
spark.sql.adaptive.enabled
— включает AQE: Spark может динамически менять число shuffle-партиций и улучшать план выполнения.
spark.sql.autoBroadcastJoinThreshold
— порог, при котором Spark может выбрать Broadcast Join.
spark.dynamicAllocation.enabled
— динамически увеличивает и уменьшает число executors.
spark.sql.adaptive.skewJoin.enabled
— помогает бороться с data skew на join’ах.
Если коротко: на собесе важно не просто помнить названия, а понимать, за что отвечает каждый параметр — ресурсы, параллелизм, shuffle, память и join-стратегии
🐈Полезные статьи:
⏺Подбираем параметры сессии в Apache Spark
⏺Как правильно просить ресурсы и как понять, сколько нужно брать
⏺6 сегментов памяти Apache Spark и параметры их конфигурирования