Yandex heeft de broncode van YTsaurus vrijgegeven

YTsaurus

YTsaurus is een gedistribueerd opslag- en verwerkingsplatform voor big data met ondersteuning voor het MapReduce-model.

Enkele dagen geleden kondigde Yandex de open source-versie aan van het YTsauru-platform, dat wordt gebruikt voor gedistribueerde opslag en verwerking van grote hoeveelheden data. Het platform ondersteunt datamanipulatie met behulp van het MapReduce-paradigma, de SQL-query-engine, het gedistribueerde bestandssysteem en NoSQL-opslag in key-value-formaat.

YTsaurus wordt in de infrastructuur van Yandex gebruikt om de rekenkracht van de supercomputers van het bedrijf efficiënt te benutten. Het platform kan worden opgeschaald naar clusters van meer dan 10.000 nodes, met maximaal een miljoen processors en duizenden GPU's (voor machine learning-taken).

Geïsoleerde containers die op fysieke servers draaien, kunnen als clustereenheden worden gebruikt. Opslag kan exabytes aan gegevens bevatten die zich op verschillende media bevinden, zoals harde schijven, SSD's, NVME en RAM.

Het cluster ondersteunt dynamische toevoeging en verwijdering van knooppunten, redundantie (geen single point of failure), automatische replicatie, actieve clustersoftware-upgrades en automatisch redundantieherstel in het geval van een knooppuntstoring.

Er worden drie soorten clusters ondersteund: rekenclusters (voor massale parallelle verwerking van big data met behulp van MapReduce-bewerkingen), clusters voor draaitabellen en sleutel-waardeparen, en geografisch gedistribueerde clusters.

Een platformgebaseerde service kan de middelen bieden om gegevens op te slaan en te verwerken voor tienduizenden gebruikers. Typische YTsaurus-toepassingen in Yandex zijn onder meer het opslaan van informatie over advertentienetwerkgebruikers, het trainen van machine learning-modellen, het vormen van een zoekindex en het bouwen van een datawarehouse voor services zoals Yandex Taxi. , Food, Lavka en leveringen

Van de basis use cases wordt vermeld:

  • Batchverwerking: MapReduce en SPYT (Apache Spark als rekenmachine op gegevens in YTsaurus) voor de verwerking van gestructureerde en semi-gestructureerde gegevens: records of financiële transacties.
  • Ad-hocanalyse: Snelle query's via CHYT (een groep ClickHouse-servers op YTsaurus-rekenknooppunten) zonder gegevens naar een afzonderlijk analysesysteem te kopiëren. ODBC en JDBC met de mogelijkheid om BI te verbinden voor visualisatie.
  • OLTP-taken: Realtime transactiewerk met opslag van sleutelwaarden: bijvoorbeeld opslag van gebruikersprofielen, weergave van advertenties of verwerking van streams.
  • Machinaal leren: Beheer GPU-clusters om modellen met miljarden parameters te trainen.
  • Opslag van meta-informatie: Transactionele opslag van meta-informatie en betrouwbare service van gedistribueerde sloten.
  • Creatie van datawarehouses en ETL voor gegevensverwerking op meerdere niveaus met behulp van typische tools: Apache Spark, SQL, MapReduce.

Terwijl van de kant van de belangrijkste elementen van de architectuur, worden de volgende genoemd:

  • Gedistribueerd bestandssysteem en Cypress fouttolerante boomgebaseerde opslag van meta-informatie.
  • Scheduler voor gedistribueerd computergebruik met ondersteuning voor het MapReduce-model, evenals geavanceerde basisbewerkingen.
  • Horizontale schaalbaarheid van IT-activiteiten.
  • Isolatie van computerbronnen en mogelijkheid om bepaalde computerbronnen (CPU, GPU, RAM) in verschillende verhoudingen toe te wijzen.
  • Draaitabellen voor het maken van OLTP-opslag, ondersteuning voor op MVCC gebaseerde opslag, transacties, de mogelijkheid om gegevens te verwijderen na verloop en berichtenwachtrijen voor het streamen van gegevensverwerking via draaitabellen.
  • API en bibliotheken voor programmeertalen C++, Python, Java, Go.
  • Een webinterface voor gebruikers en beheerders die navigatie door een boomachtige opslag ondersteunt.

Mocht u tot slot meer willen weten , dan is het goed om te weten dat de code van het project is geschreven in C/C++ en open source is onder de Apache 2.0-licentie. Meer informatie vindt u via de volgende link.

De GitHub-repository bevat de servercode voor YTsaurus, de implementatie-infrastructuur die gebruikmaakt van Kubernetes, een webinterface voor het systeem en client-SDK's voor populaire programmeertalen zoals C++, Java, Go en Python.


Voeg dit toe als voorkeursbron in Google.