Yandex a lansat codul sursă al lui YTsaurus

YTsaurus

YTsaurus este o platformă distribuită de stocare și procesare pentru date mari cu suport pentru modelul MapReduce.

Acum câteva zile, Yandex a anunțat lansarea open source a platformei YTsauru, care este utilizată pentru stocarea și procesarea distribuită a unor cantități mari de date, suportând manipularea datelor folosind paradigma MapReduce, motorul de interogări SQL, sistemul de fișiere distribuit și stocarea NoSQL în format cheie-valoare.

YTsaurus este utilizat în infrastructura Yandex pentru a utiliza eficient puterea de calcul a supercomputerelor companiei. Platforma poate fi scalată la clustere de peste 10.000 de noduri, acoperind până la un milion de procesoare și mii de GPU-uri (pentru sarcini de învățare automată).

Containerele izolate care rulează pe servere fizice pot fi folosite ca unități de cluster. Stocarea poate conține exaocteți de date localizați pe diverse medii, cum ar fi hard disk-uri, SSD-uri, NVME și RAM.

Clusterul acceptă adăugarea și eliminarea dinamică a nodurilor, redundanța (fără un singur punct de eșec), replicarea automată, upgrade-urile active ale software-ului clusterului și recuperarea redundanței automate în cazul defecțiunii nodului.

Sunt acceptate trei tipuri de clustere: clustere de calcul (pentru procesarea paralelă masivă a datelor voluminoase folosind operații MapReduce), clustere pentru tabele pivot și stocare cheie-valoare și clustere distribuite geografic.

Un serviciu bazat pe platformă poate oferi mijloacele de stocare și procesare a datelor pentru zeci de mii de utilizatori. Aplicațiile tipice YTsaurus din Yandex includ stocarea de informații despre utilizatorii rețelei publicitare, antrenarea modelelor de învățare automată, formarea unui index de căutare și construirea unui depozit de date pentru servicii precum Yandex Taxi. , Food, Lavka și livrări

Dintre cazurile de utilizare de bază se menționează:

  • Procesare în lot: MapReduce și SPYT (Apache Spark ca motor de calcul pe date în YTsaurus) pentru prelucrarea datelor structurate și semi-structurate: înregistrări sau tranzacții financiare.
  • Analiza ad-hoc: Interogări rapide prin CHYT (un grup de servere ClickHouse pe nodurile de calcul YTsaurus) fără a copia datele într-un sistem de analiză separat. ODBC și JDBC cu capacitatea de a conecta BI pentru vizualizare.
  • Sarcini OLTP: Lucru tranzacțional în timp real cu stocarea cheie-valoare: de exemplu, stocarea profilului utilizatorului, afișarea anunțurilor sau procesarea fluxului.
  • Învățare automată: Gestionați clusterele GPU pentru a antrena modele cu miliarde de parametri.
  • Stocarea meta informațiilor: Stocarea tranzacțională a metainformațiilor și serviciul de încredere de încuietori distribuite.
  • Crearea de depozite de date și ETL pentru procesarea datelor pe mai multe niveluri folosind instrumente tipice: Apache Spark, SQL, MapReduce.

În timp ce din partea principalelor elemente ale arhitecturii, se menționează următoarele:

  • Sistem de fișiere distribuit și stocare de metainformații bazată pe arbore cu toleranță la erori Cypress.
  • Scheduler pentru calcul distribuit cu suport pentru modelul MapReduce, precum și operațiuni de bază avansate.
  • Scalabilitatea orizontală a operațiunilor IT.
  • Izolarea resurselor de calcul și posibilitatea de a aloca anumite resurse de calcul (CPU, GPU, RAM) în proporții diferite.
  • PivotTables pentru crearea de stocare OLTP, suport pentru stocarea bazată pe MVCC, tranzacții, capacitatea de a șterge date după expirare și cozi de mesaje pentru procesarea datelor în flux prin PivotTables.
  • API și biblioteci pentru limbaje de programare C++, Python, Java, Go.
  • O interfață web pentru utilizatori și administratori care acceptă navigarea printr-un spațiu de stocare asemănător arborelui.

În cele din urmă, dacă sunteți interesați să aflați mai multe , ar trebui să știți că codul proiectului este scris în C/C++ și este open source sub licența Apache 2.0. Puteți găsi mai multe detalii la următorul link.

Depozitul GitHub conține codul serverului pentru YTsaurus, infrastructura de implementare care folosește k8s, o interfață web pentru sistem și SDK-uri client pentru limbaje de programare populare precum C++, Java, Go și Python.


Adăugați ca sursă preferată în Google