YTsaurus е платформа за разпределено съхранение и обработка на големи данни с поддръжка на модела MapReduce.
Преди няколко дни Yandex обяви отворения код на платформата YTsauru, която се използва за разпределено съхранение и обработка на големи количества данни, поддържайки манипулиране на данни с помощта на парадигмата MapReduce, SQL engine за заявки, разпределената файлова система и NoSQL съхранение във формат ключ-стойност.
YTsaurus се използва в инфраструктурата на Yandex за ефективно използване на изчислителната мощност на суперкомпютрите на компанията. Платформата може да се мащабира до клъстери от над 10 000 възела, обхващащи до един милион процесора и хиляди графични процесори (за задачи на машинно обучение).
Изолираните контейнери, работещи на физически сървъри, могат да се използват като клъстерни единици. Съхранението може да съдържа екзабайти данни, разположени на различни носители като твърди дискове, SSD, NVME и RAM.
Клъстерът поддържа динамично добавяне и премахване на възли, резервиране (няма единична точка на повреда), автоматична репликация, активни софтуерни надстройки на клъстера и автоматично възстановяване на резервирането в случай на повреда на възел.
Поддържат се три вида клъстери: изчислителни клъстери (за масивна паралелна обработка на големи данни с помощта на MapReduce операции), клъстери за обобщени таблици и съхранение на ключове и стойности, и географски разпределени клъстери.
Услуга, базирана на платформа, може да осигури средства за съхраняване и обработка на данни за десетки хиляди потребители. Типичните приложения на YTsaurus в Yandex включват съхраняване на информация за потребителите на рекламната мрежа, обучение на модели за машинно обучение, формиране на индекс за търсене и изграждане на хранилище за данни за услуги като Yandex Taxi. , храна, Lavka и доставки
От основните случаи на употреба се споменават:
- Пакетна обработка: MapReduce и SPYT (Apache Spark като изчислителна машина за данни в YTsaurus) за обработка на структурирани и полуструктурирани данни: записи или финансови транзакции.
- Ad hoc анализ: Бързи заявки чрез CHYT (група от сървъри на ClickHouse на изчислителни възли YTsaurus) без копиране на данни в отделна система за анализ. ODBC и JDBC с възможност за свързване на BI за визуализация.
- OLTP задачи: Транзакционна работа в реално време със съхранение на ключ-стойност: например съхранение на потребителски профил, показване на реклами или обработка на поток.
- Машинно обучение: Управлявайте GPU клъстери, за да обучавате модели с милиарди параметри.
- Съхранение на мета информация: Транзакционно съхранение на метаинформация и надеждно обслужване на разпределени брави.
- Създаване на хранилища за данни и ETL за многослойна обработка на данни с помощта на типични инструменти: Apache Spark, SQL, MapReduce.
Докато от страна на основните елементи на архитектурата се споменават следните:
- Разпределена файлова система и устойчиво на грешки дървовидно съхранение на метаинформация Cypress.
- Планировчик за разпределени изчисления с поддръжка на модела MapReduce, както и разширени основни операции.
- Хоризонтална мащабируемост на ИТ операциите.
- Изолиране на изчислителни ресурси и възможност за разпределяне на определени изчислителни ресурси (CPU, GPU, RAM) в различни пропорции.
- PivotTables за създаване на OLTP хранилище, поддръжка за базирано на MVCC съхранение, транзакции, възможност за изтриване на данни след изтичане и опашки за съобщения за поточно обработване на данни през PivotTables.
- API и библиотеки за езици за програмиране C++, Python, Java, Go.
- Уеб интерфейс за потребители и администратори, който поддържа навигация през дървовидно хранилище.
Накрая, ако се интересувате да научите повече , трябва да знаете, че кодът на проекта е написан на C/C++ и е с отворен код под лиценза Apache 2.0. Можете да намерите повече подробности на следния линк.
Хранилището на GitHub съдържа сървърния код за YTsaurus, инфраструктурата за внедряване, която използва k8s, уеб интерфейс за системата и клиентски SDK за популярни езици за програмиране като C++, Java, Go и Python.