Yandex hat den Quellcode von YTsaurus veröffentlicht

YTsaurus

YTsaurus ist eine verteilte Speicher- und Verarbeitungsplattform für Big Data mit Unterstützung für das MapReduce-Modell.

Vor wenigen Tagen kündigte Yandex die Open-Source-Veröffentlichung der YTsauru-Plattform an, die für die verteilte Speicherung und Verarbeitung großer Datenmengen verwendet wird und die Datenmanipulation mittels des MapReduce-Paradigmas, der SQL-Abfrage-Engine, des verteilten Dateisystems und der NoSQL-Speicherung im Schlüssel-Wert-Format unterstützt.

YTsaurus wird in der Infrastruktur von Yandex eingesetzt , um die Rechenleistung der Supercomputer des Unternehmens effizient zu nutzen. Die Plattform ist auf Cluster mit mehr als 10.000 Knoten skalierbar und umfasst bis zu einer Million Prozessoren und Tausende von GPUs (für Aufgaben des maschinellen Lernens).

Als Cluster-Einheiten können isolierte Container verwendet werden, die auf physischen Servern laufen. Der Speicher kann Exabytes an Daten enthalten, die sich auf verschiedenen Medien wie Festplatten, SSDs, NVME und RAM befinden.

Der Cluster unterstützt das dynamische Hinzufügen und Entfernen von Knoten, Redundanz (kein Single Point of Failure), automatische Replikation, aktive Cluster-Software-Upgrades und automatische Redundanzwiederherstellung im Falle eines Knotenausfalls.

Es werden drei Clustertypen unterstützt: Rechencluster (für die massive Parallelverarbeitung von Big Data mittels MapReduce-Operationen), Cluster für Pivot-Tabellen und Key-Value-Speicherung sowie geografisch verteilte Cluster.

Ein plattformbasierter Dienst kann die Möglichkeit bieten, Daten für Zehntausende von Benutzern zu speichern und zu verarbeiten. Typische YTsaurus-Anwendungen in Yandex umfassen das Speichern von Informationen über Benutzer von Werbenetzwerken, das Trainieren von Modellen für maschinelles Lernen, das Erstellen eines Suchindex und den Aufbau eines Data Warehouse für Dienste wie Yandex Taxi, Lebensmittel, Lavka und Lieferungen

Von den grundlegenden Anwendungsfällen wird erwähnt:

  • Stapelverarbeitung: MapReduce und SPYT (Apache Spark als Rechenmaschine für Daten in YTsaurus) für die Verarbeitung von strukturierten und halbstrukturierten Daten: Aufzeichnungen oder Finanztransaktionen.
  • Ad-hoc-Analyse: Schnelle Abfragen über CHYT (eine Gruppe von ClickHouse-Servern auf YTsaurus-Rechenknoten), ohne Daten in ein separates Analysesystem zu kopieren. ODBC und JDBC mit der Möglichkeit, BI zur Visualisierung zu verbinden.
  • OLTP-Aufgaben: Transaktionsarbeit in Echtzeit mit Key-Value-Speicherung: zum Beispiel Benutzerprofilspeicherung, Anzeige von Anzeigen oder Stream-Verarbeitung.
  • Maschinelles Lernen: Verwalten Sie GPU-Cluster, um Modelle mit Milliarden von Parametern zu trainieren.
  • Speicherung von Metainformationen: Transaktionsspeicherung von Metainformationen und zuverlässiger Dienst verteilter Sperren.
  • Erstellung von Data Warehouses und ETL für Multi-Tier-Datenverarbeitung mit typischen Tools: Apache Spark, SQL, MapReduce.

Während auf der Seite der Hauptelemente der Architektur die folgenden erwähnt werden:

  • Verteiltes Dateisystem und fehlertolerante baumbasierte Metainformationsspeicherung von Cypress.
  • Scheduler für verteiltes Rechnen mit Unterstützung für das MapReduce-Modell sowie erweiterte grundlegende Operationen.
  • Horizontale Skalierbarkeit des IT-Betriebs.
  • Isolierung von Rechenressourcen und Möglichkeit, bestimmte Rechenressourcen (CPU, GPU, RAM) in unterschiedlichen Anteilen zuzuweisen.
  • PivotTables zum Erstellen von OLTP-Speicher, Unterstützung für MVCC-basierte Speicherung, Transaktionen, die Möglichkeit, Daten nach Ablauf zu löschen, und Nachrichtenwarteschlangen für die Streaming-Datenverarbeitung über PivotTables.
  • API und Bibliotheken für Programmiersprachen C++, Python, Java, Go.
  • Eine Webschnittstelle für Benutzer und Administratoren, die die Navigation durch einen baumartigen Speicher unterstützt.

Abschließend sei noch erwähnt, dass der Projektcode in C/C++ geschrieben und unter der Apache-2.0-Lizenz als Open Source veröffentlicht ist. Weitere Details finden Sie unter folgendem Link.

Das GitHub-Repository enthält den Servercode für YTsaurus, die Bereitstellungsinfrastruktur, die k8s verwendet, eine Weboberfläche für das System sowie Client-SDKs für gängige Programmiersprachen wie C++, Java, Go und Python.


Als bevorzugte Quelle in Google hinzufügen