YTsaurus SPYT: как мы сначала форкнули и пропатчили 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)