YTsaurus SPYT: как мы избавились от форка Apache Spark и поддержали широкую совместимость

BigData и инфраструктура машинного обучения (data engineering)

Разработка библиотек, включая open source библиотеки
Обработка данных
YTSaurus

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Поддержка форка крупного Open Source-проекта — это больно. В Яндексе реализовали оригинальный способ внесения доработок в Apache Spark (JVM и Python) без необходимости создания форка, а также обеспечили совместимость своего проекта с широким диапазоном версий.

Целевая аудитория

Неравнодушные к YTsaurus узнают, какие последние нововведения были сделаны в YTsaurus SPYT, разработчики узнают, когда стоит, а когда не стоит делать форк популярного Open Source-фреймворка, специалисты по большим данным и Apache Spark узнают, как можно быстро и безболезненно расширить его функционал.

Тезисы

Проекту SPYT, обеспечивающему интеграцию Apache Spark с YTsaurus, больше 5 лет. Несколько лет назад мы уже рассказывали о том, как нам удалось их подружить так, чтобы всё работало эффективно (https://highload.ru/spring/2021/abstracts/7266). С тех пор в проекте произошел ряд важных событий, и самое главное из них — выход YTsaurus в Open Source весной 2023 года.

Выход в Open Source принёс в проект ряд новых требований. Во-первых, как и многие другие компании, мы использовали свой форк спарка, в котором сделали ряд модификаций. И при выходе в Open Source нам пришлось включить весь код модифицированного спарка в свой репозиторий (а это больше 2 миллионов строк), хотя в целом изменения там были не очень существенные. Это сильно усложнило как понимание самого кода для сторонних разработчиков, так и процесс его сборки и модификации.

Ещё одним требованием, возникшим после выхода в Open Source, стала одновременная поддержка нескольких версий спарка. И если внутренних пользователей в целом устраивала версия спарка, на которой был основан форк, то внешние пользователи хотели использовать произвольную версию спарка, не ограничиваясь лишь той версией, на базе которой мы сделали свой форк.

Перед нами встала задача: перенести все наши доработки из форка в SPYT и перейти на использование оригинальных дистрибутивов спарка. Другой сопутствующей задачей стал уход от жёсткой привязки к определённой версии спарка и обеспечение возможности работать с произвольной версией таким образом, чтобы сохранился весь функционал и не была нарушена бинарная совместимость между SPYT и спарком.

В своём докладе я расскажу о том, зачем изначально нам потребовалось сделать форк и пропатчить Apache Spark, какие это вносило неудобства, и как мы справились с самыми главными вызовами после выхода проекта в Open Source: отказ от форка Apache Spark и поддержка работы SPYT, используя произвольную версию Apache Spark.

Разработчик с 15+ лет опыта. Раньше работал в компаниях Qiwi, CleverData и Leroy Merlin. Последние 10 лет разрабатывает распределенные системы для хранения и обработки больших объёмов неструктурированных данных. В настоящее время в Яндексе занимается интеграцией Apache Spark с YTsaurus.

Яндекс

Яндекс — технологическая компания, которая создает инновационные продукты на основе машинного обучения и нейронных сетей. Команда талантливых математиков и программистов развивает самую популярную в России поисковую систему и более 85 пользовательских сервисов, которые помогают людям в повседневных заботах.

Видео

Другие доклады секции

BigData и инфраструктура машинного обучения (data engineering)