Магия конфигов
Запускала я свои спарк приложения в кубере. Ну надо потестить сначала на небольшом наборе данных и с небольшим количеством ресурсов
Сколько возьмем экзекьюторов?
Пусть будет 5 экзекьюторов, это уже не 1-2, но и не 40, для старта в самый раз
А сколько ядер?
Оптимально вроде как по 5 ядер, но 25 уже кажется многовато. Пусть будет по 4
Позапускала, потестила, все возникающие ошибки исправила. Теперь пора взять побольше данных и увеличить ресурсы

Пусть будет по 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 раза - стало 8. Приложение висело несколько часов, в Spark UI на вкладке Executors есть только один драйвер, ни одна таска не пошла считаться
Ага, тоже не работает. Оказалось, что уже зашит конфиг и его нужно самому менять при необходимости:
spark.kubernetes.executor.limit.cores 4
Нет, ну вы представляете, как я просто интуитивно почувствовала ограничения кластера, когда изначально тестила?😁
Обсуждение 3
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram