Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем

YTsaurus SPYT: как мы сначала форкнули и пропатчили Apache Spark, а потом от него избавлялись.

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

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

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

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

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

Тезисы

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

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

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

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

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

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

Яндекс

Про Яндекс я думаю все и так знают :)

Видео

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

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