Яндекс опубликовал исходный код YTsaurus

ЮЦаурус

YTsaurus — это распределенная платформа для хранения и обработки больших данных с поддержкой модели MapReduce.

Несколько дней назад компания Yandex объявила об открытии исходного кода платформы YTsauru, которая используется для распределенного хранения и обработки больших объемов данных, поддерживая манипулирование данными с использованием парадигмы MapReduce, механизм запросов SQL, распределенную файловую систему и хранилище NoSQL в формате ключ-значение.

YTsaurus используется в инфраструктуре Яндекса для эффективного использования вычислительной мощности суперкомпьютеров компании. Платформа может масштабироваться до кластеров, насчитывающих более 10 000 узлов, охватывающих до миллиона процессоров и тысяч графических процессоров (для задач машинного обучения).

Изолированные контейнеры, работающие на физических серверах, могут использоваться в качестве единиц кластера. Хранилище может содержать эксабайты данных, расположенных на различных носителях, таких как жесткие диски, твердотельные накопители, NVME и ОЗУ.

Кластер поддерживает динамическое добавление и удаление узлов, избыточность (отсутствие единой точки отказа), автоматическую репликацию, активные обновления программного обеспечения кластера и автоматическое восстановление избыточности в случае отказа узла.

Поддерживаются три типа кластеров: вычислительные кластеры (для массовой параллельной обработки больших данных с использованием операций MapReduce), кластеры для сводных таблиц и хранения данных типа «ключ-значение», а также географически распределенные кластеры.

Платформенный сервис может предоставить средства для хранения и обработки данных для десятков тысяч пользователей. Типичные приложения YTsaurus в Яндексе включают в себя хранение информации о пользователях рекламной сети, обучение моделей машинного обучения, формирование поискового индекса и построение хранилища данных для таких сервисов, как Яндекс Такси, Еда, Лавка и доставки.

Из основных вариантов использования упоминаются:

  • Пакетная обработка: MapReduce и SPYT (Apache Spark как вычислительный движок данных в YTsaurus) для обработки структурированных и частично структурированных данных: записей или финансовых транзакций.
  • Специальный анализ: Быстрые запросы через CHYT (группа серверов ClickHouse на вычислительных узлах YTsaurus) без копирования данных в отдельную систему аналитики. ODBC и JDBC с возможностью подключения BI для визуализации.
  • OLTP-задачи: Транзакционная работа в режиме реального времени с хранилищем «ключ-значение»: например, хранилище профилей пользователей, показ рекламы или обработка потоков.
  • Машинное обучение: Управляйте кластерами GPU для обучения моделей с миллиардами параметров.
  • Хранение метаинформации: Транзакционное хранение метаинформации и надежное обслуживание распределенных блокировок.
  • Создание хранилищ данных и ETL для многоуровневой обработки данных с использованием типовых инструментов: Apache Spark, SQL, MapReduce.

При этом со стороны основных элементов архитектуры упоминаются следующие:

  • Распределенная файловая система и отказоустойчивое древовидное хранилище метаинформации Cypress.
  • Планировщик для распределенных вычислений с поддержкой модели MapReduce, а также расширенными базовыми операциями.
  • Горизонтальная масштабируемость ИТ-операций.
  • Изоляция вычислительных ресурсов и возможность распределения определенных вычислительных ресурсов (CPU, GPU, RAM) в разных пропорциях.
  • Сводные таблицы для создания хранилища OLTP, поддержка хранилища на основе MVCC, транзакций, возможность удаления данных после истечения срока действия и очереди сообщений для потоковой обработки данных через сводные таблицы.
  • API и библиотеки для языков программирования C++, Python, Java, Go.
  • Веб-интерфейс для пользователей и администраторов, поддерживающий навигацию по древовидному хранилищу.

Наконец, если вам интересно узнать больше , следует знать, что код проекта написан на C/C++ и является открытым исходным кодом под лицензией Apache 2.0. Более подробную информацию можно найти по следующей ссылке.

В репозитории GitHub содержится серверный код YTsaurus, инфраструктура развертывания, использующая Kubernetes, веб-интерфейс для системы, а также клиентские SDK для популярных языков программирования, таких как C++, Java, Go и Python.


Добавить в качестве предпочтительного источника в Google