YTsaurus — это основная платформа для аналитики и построения batch-процессов в Яндексе, которая включает несколько видов хранилищ, планировщик ресурсов и встроенный MapReduce-движок. Apache Spark — популярный открытый фреймворк для распределённой обработки больших объёмов данных.
Уже больше 5 лет мы занимаемся интеграцией Spark с YTsaurus в рамках проекта SPYT. За это время Spark стал одним из основных аналитических инструментов для работы с данными, которые хранятся в YTsaurus и используются как внутри Яндекса, так и внешними пользователями. Исходный код SPYT доступен в опенсорсе в репозитории. За последние годы мы несколько раз рассказывали про наш проект на конференциях:
— Как подключить к Apache Spark проприетарный источник данных (https://highload.ru/spring/2021/abstracts/7266)
— Помогаем планировщику Apache Spark быть ещё эффективнее (https://highload.ru/spb/2023/abstracts/10222)
— Внедряем Spark SQL в массы (https://highload.ru/spb/2024/abstracts/12116)
Перед нами стоят всё более интересные и амбициозные задачи, и мы ищем сильного разработчика, который станет частью нашей команды.
Какие задачи вас ждут
Поддержка всех современных версий Spark
Сам Spark продолжает активно развиваться, поэтому необходимо поддерживать нашу интеграцию в соответствии со всей новой функциональностью, реализуемой в основном фреймворке. Например, нужно будет сделать поддержку Java 17 и Java 21, а также интегрировать со Spark Connect, появившемся в Spark 3.4.0.
Развитие интеграции Spark и YTsaurus
Мы работаем над созданием собственного внешнего shuffle-сервиса и хотим его интегрировать для использования в Spark-расчётах. Кроме того, повышаем эффективность выполнения задач Spark в YTsaurus, развивая более тесную интеграцию с хранилищем данных и планировщиков задач.
Продвижение опенсорс-проекта
C 2023 года код YTsaurus, в том числе и SPYT, доступен в открытом доступе, поэтому мы активно работаем над развитием внешнего комьюнити вокруг проекта.
Мы ждем, что вы
- Работали с Apache Spark не менее трёх лет
- Умеете разрабатывать на Java и Python, также желательно знать Scala
- Понимаете принципы распределённого хранения и обработки больших объёмов данных
Будет плюсом, если вы
- Работали с Hadoop-стеком (HDFS, YARN)
- Работали с Docker и Kubernetes
- Принимали участие в работе над опенсорс-проектом
- Знаете C++ или Go