Yandex släppte källkoden för YTsaurus

YTsaurus

YTsaurus är en distribuerad lagrings- och bearbetningsplattform för big data med stöd för MapReduce-modellen.

Några dagar sedan Yandex avslöjat genom en meddelad öppnandet av källkoden för YTsauru-plattformen, som används för distribuerad lagring och bearbetning av stora mängder data, vilket stödjer datamanipulation med hjälp av MapReduce-paradigmet, SQL-frågemotor, distribuerat filsystem och NoSQL-lagring i nyckel-värde-format.

YTsaurus Begagnade på Yandex-infrastrukturen att effektivt använda datorkraften hos superdatorer av företaget Plattformen kan skalas till kluster med mer än 10 000 noder, som täcker upp till en miljon processorer och tusentals GPU:er (för maskininlärningsuppgifter).

Isolerade behållare som körs på fysiska servrar kan användas som klusterenheter. Lagring kan innehålla exabyte av data som finns på olika medier som hårddiskar, SSD, NVME och RAM.

Klustret stöder dynamiskt tillägg och borttagning av noder, redundans (ingen enskild felpunkt), automatisk replikering, aktiva klusterprogramvaruuppgraderingar och automatisk redundansåterställning i händelse av nodfel.

Tre typer av kluster stöds: beräkningskluster (för massiv parallell bearbetning av big data med MapReduce-operationer), kluster för pivottabeller och nyckel-värdelagring och geografiskt distribuerade kluster.

En plattformsbaserad tjänst kan ge möjlighet att lagra och bearbeta data för tiotusentals användare. Typiska YTsaurus-applikationer i Yandex inkluderar att lagra information om annonsnätverksanvändare, träna maskininlärningsmodeller, bilda ett sökindex och bygga ett datalager för tjänster som Yandex Taxi. , Food, Lavka och leveranser

Av de grundläggande användningsfallen nämns:

  • Satsvis bearbetning: MapReduce och SPYT (Apache Spark som en datormotor för data i YTsaurus) för bearbetning av strukturerade och semistrukturerade data: poster eller finansiella transaktioner.
  • Ad hoc analys: Snabba frågor via CHYT (en grupp ClickHouse-servrar på YTsaurus beräkningsnoder) utan att kopiera data till ett separat analyssystem. ODBC och JDBC med möjlighet att koppla ihop BI för visualisering.
  • OLTP-uppgifter: Transaktionsarbete i realtid med nyckel-värde-lagring: till exempel lagring av användarprofiler, annonsvisning eller strömbearbetning.
  • Maskininlärning: Hantera GPU-kluster för att träna modeller med miljarder parametrar.
  • Lagring av metainformation: Transaktionslagring av metainformation och tillförlitlig service av distribuerade lås.
  • Skapande av datalager och ETL för multi-tier databehandling med hjälp av typiska verktyg: Apache Spark, SQL, MapReduce.

När det gäller arkitekturens huvudelement, nämns följande:

  • Distribuerat filsystem och Cypress feltolerant trädbaserad metainformationslagring.
  • Schemaläggare för distribuerad datoranvändning med stöd för MapReduce-modellen, samt avancerade grundläggande operationer.
  • Horisontell skalbarhet av IT-drift.
  • Isolering av datorresurser och möjlighet att allokera vissa datorresurser (CPU, GPU, RAM) i olika proportioner.
  • Pivottabeller för att skapa OLTP-lagring, stöd för MVCC-baserad lagring, transaktioner, möjligheten att radera data efter utgången och meddelandeköer för strömmande databearbetning över pivottabeller.
  • API och bibliotek för programmeringsspråken C++, Python, Java, Go.
  • Ett webbgränssnitt för användare och administratörer som stöder navigering genom en trädliknande lagring.

Slutligen om du är intresserad av att veta mer om det, bör du veta att projektets kod är skriven i C/C++ och är öppen under Apache 2.0-licensen. Du kan kontrollera detaljerna i följande länk.

El GitHub-förvar innehåller serverkoden för YTsaurus, distributionsramverket som används av k8s, ett webbgränssnitt till systemet och klient-SDK:er för populära programmeringsspråk som C++, Java, Go och Python. 


Lägg till som prioriterad källa i Google