Магия конфигов****✨

Запускала я свои спарк приложения в кубере. Ну надо потестить сначала на небольшом наборе данных и с небольшим количеством ресурсов

Сколько возьмем экзекьюторов? Пусть будет 5 экзекьюторов, это уже не 1-2, но и не 40, для старта в самый раз

А сколько ядер? Оптимально вроде как по 5 ядер, но 25 уже кажется многовато. Пусть будет по 4

Позапускала, потестила, все возникающие ошибки исправила. Теперь пора взять побольше данных и увеличить ресурсы

1️⃣ Пусть будет по 10 экзекьюторов

Caused by: java.lang.IllegalArgumentException: requirement failed: initial executor number 10 must between min executor number 1 and max executor number 5

Ага, не получится, уже в системе заранее заложили лимит в 5 экзекьюторов, меняем:

spark.dynamicAllocation.maxExecutors=10

2️⃣Теперь поднимем ядра в 2 раза - стало 8. Приложение висело несколько часов, в Spark UI на вкладке Executors есть только один драйвер, ни одна таска не пошла считаться

Ага, тоже не работает. Оказалось, что уже зашит конфиг и его нужно самому менять при необходимости:

spark.kubernetes.executor.limit.cores 4

😊 Нет, ну вы представляете, как я просто интуитивно почувствовала ограничения кластера, когда изначально тестила?😁