
Илья Кочагин
MTS Web Services (MWS)
Обработка больших данных с использованием Apache Spark стала стандартом для ETL-процессов (Extract, Transform, Load) благодаря высокой производительности и масштабируемости. Эффективность выполнения задач в Spark критически зависит от правильной настройки параметров конфигурации, таких как spark.executor.memory
, spark.default.parallelism
и spark.driver.memory
. Ручная оптимизация этих параметров требует глубоких знаний системы и часто приводит к неоптимальным результатам из-за сложного взаимодействия между настройками и изменчивости нагрузок, а также различий между входными данными и алгоритмами работы Spark-приложений.
В докладе расскажу про ряд проблем, с которыми сталкивается Data Engineer при конфигурировании Spark.
Для оценки оптимальности работы Spark-приложения используют метрики из логов Spark и хранилища метрик Graphite, куда Spark отбрасывает метрики. Расскажу, как собранная информация о метриках исполнения Spark используется в системе, причем тут LLM (модель — mts-anya) и RAG, как мы собрали базу из конкретных рекомендаций по тюнингу Spark-приложений, по рекомендациям построили эмбеддинги (bge-m3) и для конкретного Spark-приложения находим самые релевантные рекомендации по тюнингу Spark. Также продемонстрирую реализованную микросервисную архитектуру системы с использованием Kafka и K8s.
В заключении покажу примеры неоптимально настроенных процессов, где конфигурирование параметров привело к улучшению утилизации ресурсов и расскажу о текущих нерешенных проблемах и дальнейших планах развития системы.
MTS Web Services (MWS)