Yandex udostępnił kod źródłowy YTsaurusa

YTzaur

YTsaurus to rozproszona platforma do przechowywania i przetwarzania dużych zbiorów danych z obsługą modelu MapReduce.

Kilka dni temu Yandex ogłosił udostępnienie kodu źródłowego platformy YTsauru, która służy do rozproszonego przechowywania i przetwarzania dużych ilości danych, obsługując manipulowanie danymi przy użyciu paradygmatu MapReduce, mechanizmu zapytań SQL, rozproszonego systemu plików i przechowywania NoSQL w formacie klucz-wartość.

Platforma YTsaurus jest wykorzystywana w infrastrukturze Yandex do efektywnego wykorzystania mocy obliczeniowej superkomputerów firmy. Platforma może skalować się do klastrów liczących ponad 10 000 węzłów, obejmujących do miliona procesorów i tysięcy procesorów graficznych (do zadań uczenia maszynowego).

Izolowane kontenery działające na serwerach fizycznych mogą służyć jako jednostki klastrowe. Pamięć masowa może zawierać eksabajty danych znajdujących się na różnych nośnikach, takich jak dyski twarde, dyski SSD, NVME i pamięć RAM.

Klaster obsługuje dynamiczne dodawanie i usuwanie węzłów, redundancję (brak pojedynczego punktu awarii), automatyczną replikację, aktywne aktualizacje oprogramowania klastra oraz automatyczne przywracanie nadmiarowości w przypadku awarii węzła.

Obsługiwane są trzy typy klastrów: klastry obliczeniowe (do masowego równoległego przetwarzania dużych zbiorów danych przy użyciu operacji MapReduce), klastry do tabel przestawnych i przechowywania wartości kluczowych, a także klastry rozproszone geograficznie.

Usługa oparta na platformie może zapewnić środki do przechowywania i przetwarzania danych dla dziesiątek tysięcy użytkowników. Typowe zastosowania YTsaurus w Yandex obejmują przechowywanie informacji o użytkownikach sieci reklamowej, trenowanie modeli uczenia maszynowego, tworzenie indeksu wyszukiwania i budowanie hurtowni danych dla usług takich jak Yandex Taxi. , Jedzenie, Lavka i dostawy

Z podstawowych przypadków użycia wymienia się:

  • Przetwarzanie wsadowe: MapReduce i SPYT (Apache Spark jako silnik obliczeniowy na danych w YTsaurus) do przetwarzania ustrukturyzowanych i częściowo ustrukturyzowanych danych: rekordów lub transakcji finansowych.
  • Analiza ad hoc: Szybkie zapytania przez CHYT (grupa serwerów ClickHouse na węzłach obliczeniowych YTsaurus) bez kopiowania danych do osobnego systemu analitycznego. ODBC i JDBC z możliwością podłączenia BI do wizualizacji.
  • Zadania OLTP: Praca transakcyjna w czasie rzeczywistym z pamięcią klucz-wartość: na przykład przechowywanie profilu użytkownika, wyświetlanie reklam lub przetwarzanie strumienia.
  • Nauczanie maszynowe: Zarządzaj klastrami GPU, aby trenować modele z miliardami parametrów.
  • Przechowywanie metainformacji: Transakcyjne przechowywanie metainformacji i niezawodna obsługa rozproszonych zamków.
  • Tworzenie hurtowni danych i ETL do wielowarstwowego przetwarzania danych z wykorzystaniem typowych narzędzi: Apache Spark, SQL, MapReduce.

Natomiast ze strony głównych elementów architektury wymienia się:

  • Rozproszony system plików i odporne na błędy przechowywanie metainformacji oparte na drzewie Cypress.
  • Harmonogram do przetwarzania rozproszonego z obsługą modelu MapReduce, a także zaawansowanych operacji podstawowych.
  • Skalowalność pozioma operacji IT.
  • Izolacja zasobów obliczeniowych i możliwość alokacji określonych zasobów obliczeniowych (CPU, GPU, RAM) w różnych proporcjach.
  • Tabele przestawne do tworzenia magazynu OLTP, obsługa magazynu opartego na MVCC, transakcje, możliwość usuwania danych po wygaśnięciu oraz kolejki komunikatów do strumieniowego przetwarzania danych przez tabele przestawne.
  • API i biblioteki dla języków programowania C++, Python, Java, Go.
  • Interfejs sieciowy dla użytkowników i administratorów obsługujący nawigację po drzewiastym magazynie.

Na koniec, jeśli chcesz dowiedzieć się więcej , warto wiedzieć, że kod projektu jest napisany w C/C++ i jest dostępny jako oprogramowanie open source na licencji Apache 2.0. Więcej szczegółów znajdziesz pod poniższym linkiem.

Repozytorium GitHub zawiera kod serwerowy dla YTsaurus, infrastrukturę wdrożeniową wykorzystującą k8s, interfejs internetowy dla systemu oraz zestawy SDK klienta dla popularnych języków programowania, takich jak C++, Java, Go i Python.


Dodaj jako preferowane źródło w Google