Путь "Spark on Kubernetes"
С момента выхода Spark 2.3 в 2018 г. Kubernetes стал, по сути, новым диспетчером для Spark в крупных компаниях, которые возглавляют проект: Google, RedHat, Palantir, Bloomberg, Lyft. И если поначалу поддержка была экспериментальной, функций было мало, а стабильность наряду с производительностью были невысоки, то с той поры сообщество проекта получило серьезную поддержку от многих компаний, которых заинтересовали следующие достоинства Kubernetes.
- Нативная контейнеризация. Возможность упаковывать зависимости (и сам Spark) посредством Docker.
- Эффективное совместное применение имеющихся ресурсов и ускорение запуска приложений.
- Широкая Open Source-экосистема, снижающая зависимость от вендоров и облачных провайдеров.
При этом в проект внесли ряд нововведений, начиная с базовых требований типа поддержки PySpark и R, монтирования томов в Spark 2.4, а также клиентского режима, заканчивая мощными оптимизациями типа динамического выделения (в версии 3.0) и улучшениями обработки выключения нод (в версии 3.1). А за последующие годы было выпущено более 500 патчей, которые существенно повысили производительность и надежность Spark-on-Kubernetes.
Что изменилось с 2018 по 2021 гг.?
Если взять 2021 год, то в новых Spark-проектах Kubernetes все чаще рассматривают в качестве стандартного менеджера ресурсов, что следует как из популярности Open Source-проекта оператора Spark-on-Kubernetes, так и из объявлений крупных вендоров, которые выполняют внедрение Kubernetes вместо Hadoop YARN.
При этом в момент выхода версии 3.1 проект Spark-on-Kubernetes получил статус готового к эксплуатации и общедоступного. В данный релиз внесли более 70 исправлений, а также различных улучшений производительности. Среди них можно выделить те, которые заказчики ждали с особым нетерпением:
- Опции с томами в "Spark on Kubernetes".
- Улучшенная обработка выключения нод в Spark 3.
- Стейджинговая диспетчеризация и пр.
По материалам https://towardsdatascience.com/apache-spark-3-1-release-spark-on-kubernetes-is-now-generally-available-65cccbf1436b.