TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.43K subscribers
Post #54 1.25K
⚙️Основные настройки Spark Session⚙️

Spark-приложение управляется менеджером ресурсов YARN/Mesos/Standalone. У нас используется YARN. Он запускает приложение, выделяет ресурсы на вычисления и мониторит весь процесс.

➡️Есть две важные вещи: driver и executor.

Executor
- исполнитель, выполняет Spark-код (например, "выведи 10 строчек из таблицы"). Их много.
Driver
- драйвер, координирует работу экзекьюторов, планирует для них задачки и собирает результаты. А он такой один.

📝Перейдем к параметрам:

spark.driver.memory - объем памяти драйвера
spark.driver.cores - количество ядер драйвера
spark.driver.maxResultSize
- максимальный размер результата, который передается от экзекьютеров к драйверу после вычислений

spark.executor.memory - объем памяти одного экзекьютора
spark.executor.cores - количество ядер экзекьютора
spark.executor.instances
- количество экзекьюторов
Количество экзекьюторов и ядер влияет на скорость обработки данных за счет параллельного вычисления.

spark.local.dir - директория хранения временных файлов
spark.port.maxRetries
- максимальное количество попыток подключения к порту (для UI, драйвера и т.д.)

Как применять:
spark = (
SparkSession.builder
.config("spark.driver.memory", "20g") # g - гигабайты, возможны 4: k, m, g, t
.config("spark.driver.cores", "2")
.config("spark.driver.maxResultSize", "20g")
.config("spark.executor.memory", "10g")
.config("spark.executor.cores", "2")
.config("spark.executor.instances", "20")
.config("spark.local.dir", "sparktmp")
.config("spark.port.maxRetries", "150")
...
)


Для запуска у себя на ноуте достаточно:
spark = (
SparkSession.builder
.appName("MySparkApp")
.master("local[*]") # * - все ядра, или указать число
.getOrCreate()
)


Более подробный список тут

Экзекьюторы нужно настраивать при статическом выделении ресурсов, а как это правильно делать и как настраивать динамически - расскажу в следующих постах👨‍💻

#spark
  • 🔥 11
  • ❤‍🔥 3
  • ⚡ 2
  • ❤ 1
More from @data_engineerette
  1. Oct 2, 2026Lance Недавно ковырялась в инструменте для обслуживания таблиц Apache Amoro и наткнулась н…
  2. Sep 30, 20265 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и…
  3. Sep 25, 2026Как прошла SmartData 2026? Я вот перечитываю свои впечатления от прошлого года и понимаю,…
  4. Sep 24, 2026Исследование data-people Тут ребята из DevCrowd запустили ежегодное исследование специалис…
  5. Sep 15, 2026Каким должен быть хороший DE? Меня однажды спросили на собесе: 🤩Какие 3 качества важны дл…
  6. Sep 12, 2026Mermaid-диаграммы Наконец-то дошли руки поковыряться в mermaid-диаграммах, это что за имба…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →