Yandex frigav kildekoden til YTsaurus

YTsaurus

YTsaurus er en distribueret lagrings- og behandlingsplatform for big data med understøttelse af MapReduce-modellen.

For et par dage siden annoncerede Yandex open source-platformen YTsauru, som bruges til distribueret lagring og behandling af store mængder data, og som understøtter datamanipulation ved hjælp af MapReduce-paradigmet, SQL-forespørgselsmotoren, det distribuerede filsystem og NoSQL-lagring i nøgleværdiformat.

YTsaurus bruges i Yandex' infrastruktur til effektivt at udnytte computerkraften i virksomhedens supercomputere. Platformen kan skaleres til klynger på mere end 10.000 noder, der dækker op til en million processorer og tusindvis af GPU'er (til maskinlæringsopgaver).

Isolerede containere, der kører på fysiske servere, kan bruges som klyngeenheder. Opbevaring kan indeholde exabytes af data placeret på forskellige medier såsom harddiske, SSD'er, NVME og RAM.

Klyngen understøtter dynamisk tilføjelse og fjernelse af noder, redundans (ingen enkelt fejlpunkt), automatisk replikering, aktive klyngesoftwareopgraderinger og automatisk redundansgendannelse i tilfælde af knudefejl.

Tre typer klynger understøttes: beregningsklynger (til massiv parallel behandling af big data ved hjælp af MapReduce-operationer), klynger til pivottabeller og nøgleværdilagring og geografisk distribuerede klynger.

En platformsbaseret tjeneste kan give midlerne til at gemme og behandle data for titusindvis af brugere. Typiske YTsaurus-applikationer i Yandex inkluderer lagring af oplysninger om brugere af annoncenetværk, træning af maskinlæringsmodeller, dannelse af et søgeindeks og opbygning af et datavarehus til tjenester som Yandex Taxi. , Food, Lavka og leveringer

Af de grundlæggende brugstilfælde nævnes:

  • Batchbehandling: MapReduce og SPYT (Apache Spark som en computermaskine på data i YTsaurus) til behandling af strukturerede og semi-strukturerede data: poster eller finansielle transaktioner.
  • Ad hoc analyse: Hurtige forespørgsler via CHYT (en gruppe ClickHouse-servere på YTsaurus compute noder) uden at kopiere data til et separat analysesystem. ODBC og JDBC med mulighed for at forbinde BI til visualisering.
  • OLTP-opgaver: Transaktionsarbejde i realtid med lagring af nøgleværdier: for eksempel lagring af brugerprofiler, annoncevisning eller streambehandling.
  • Maskinelæring: Administrer GPU-klynger for at træne modeller med milliarder af parametre.
  • Opbevaring af metainformation: Transaktionel lagring af metainformation og pålidelig service af distribuerede låse.
  • Oprettelse af datavarehuse og ETL til multi-tier databehandling ved hjælp af typiske værktøjer: Apache Spark, SQL, MapReduce.

Mens der er tale om hovedelementerne i arkitekturen, er følgende nævnt:

  • Distribueret filsystem og Cypress fejltolerant træbaseret metainformationslagring.
  • Scheduler til distribueret computing med understøttelse af MapReduce-modellen, samt avancerede grundlæggende operationer.
  • Horisontal skalerbarhed af IT-drift.
  • Isolering af computerressourcer og mulighed for at allokere visse computerressourcer (CPU, GPU, RAM) i forskellige proportioner.
  • Pivottabeller til oprettelse af OLTP-lager, understøttelse af MVCC-baseret lager, transaktioner, mulighed for at slette data efter udløb og beskedkøer til streaming af databehandling over pivottabeller.
  • API og biblioteker til programmeringssprog C++, Python, Java, Go.
  • En webgrænseflade til brugere og administratorer, der understøtter navigation gennem et trælignende lager.

Endelig, hvis du er interesseret i at lære mere , bør du vide, at projektets kode er skrevet i C/C++ og er open source under Apache 2.0-licensen. Du kan finde flere detaljer på følgende link.

GitHub -arkivet indeholder serverkoden til YTsaurus, implementeringsinfrastrukturen, der bruger k8s, en webgrænseflade til systemet og klient-SDK'er til populære programmeringssprog som C++, Java, Go og Python.


Tilføj som foretrukken kilde i Google