„Yandex“ išleido „YTsaurus“ šaltinio kodą

YTsaurus

„YTsaurus“ yra paskirstyta didelių duomenų saugojimo ir apdorojimo platforma, palaikanti „MapReduce“ modelį.

Prieš kelias dienas „Yandex“ paskelbė apie atvirojo kodo „YTsauru“ platformą, kuri naudojama paskirstytam didelių duomenų kiekių saugojimui ir apdorojimui, palaikant duomenų manipuliavimą naudojant „MapReduce“ paradigmą, SQL užklausų variklį, paskirstytą failų sistemą ir „NoSQL“ saugojimą rakto-reikšmės formatu.

„Yandex“ infrastruktūroje naudojama „YTsaurus“ , siekiant efektyviai panaudoti įmonės superkompiuterių skaičiavimo galią . Platforma gali būti plečiama iki daugiau nei 10 000 mazgų klasterių, apimančių iki milijono procesorių ir tūkstančius grafikos procesorių (mašininio mokymosi užduotims).

Izoliuoti konteineriai, veikiantys fiziniuose serveriuose, gali būti naudojami kaip klasterių vienetai. Saugykloje gali būti eksabaitų duomenų, esančių įvairiose laikmenose, tokiose kaip standieji diskai, SSD, NVME ir RAM.

Klasteris palaiko dinaminį mazgų pridėjimą ir pašalinimą, atleidimą (nėra vieno gedimo taško), automatinį replikavimą, aktyvius klasterio programinės įrangos atnaujinimus ir automatinį pertekliaus atkūrimą mazgo gedimo atveju.

Palaikomi trijų tipų klasteriai: skaičiavimo klasteriai (skirti dideliems duomenų kiekiams lygiagrečiai apdoroti naudojant „MapReduce“ operacijas), klasteriai, skirti sukimo lentelėms ir raktų bei reikšmių saugojimui, ir geografiškai paskirstyti klasteriai.

Platforma pagrįsta paslauga gali suteikti galimybę saugoti ir apdoroti duomenis dešimčiai tūkstančių vartotojų. Įprastos „YTsaurus“ programos „Yandex“ apima informacijos apie skelbimų tinklo vartotojus saugojimą, mašininio mokymosi modelių mokymą, paieškos indekso formavimą ir duomenų saugyklos kūrimą tokioms paslaugoms kaip „Yandex Taxi“. , Food, Lavka ir pristatymai.

Iš pagrindinių naudojimo atvejų minima:

  • Paketinis apdorojimas: MapReduce ir SPYT (Apache Spark kaip YTsaurus duomenų skaičiavimo variklis), skirtos struktūriniams ir pusiau struktūriniams duomenims apdoroti: įrašams ar finansinėms operacijoms.
  • Ad hoc analizė: Greitos užklausos per CHYT („ClickHouse“ serverių grupė „YTsaurus“ skaičiavimo mazguose) nekopijuojant duomenų į atskirą analizės sistemą. ODBC ir JDBC su galimybe prijungti BI vizualizacijai.
  • OLTP užduotys: Operacijų darbas realiuoju laiku su rakto vertės saugykla: pavyzdžiui, naudotojo profilio saugykla, skelbimų rodymas arba srauto apdorojimas.
  • Mašinų mokymasis: Tvarkykite GPU grupes, kad mokytumėte modelius su milijardais parametrų.
  • Meta informacijos saugojimas: Transakcinis metainformacijos saugojimas ir patikimas paskirstytų spynų aptarnavimas.
  • Duomenų saugyklų ir ETL kūrimas kelių pakopų duomenų apdorojimui naudojant tipinius įrankius: Apache Spark, SQL, MapReduce.

Kalbant apie pagrindinius architektūros elementus, paminėtini šie dalykai:

  • Paskirstyta failų sistema ir „Cypress“ gedimams atspari medžiu pagrįsta metainformacijos saugykla.
  • Paskirstyto skaičiavimo planuoklis su MapReduce modelio palaikymu, taip pat išplėstinėmis pagrindinėmis operacijomis.
  • Horizontalus IT operacijų mastelio keitimas.
  • Skaičiavimo resursų izoliavimas ir galimybė paskirstyti tam tikrus skaičiavimo resursus (CPU, GPU, RAM) skirtingomis proporcijomis.
  • PivotTables, skirtos OLTP saugyklai kurti, MVCC pagrįstos saugyklos palaikymas, operacijos, galimybė ištrinti duomenis pasibaigus galiojimo laikui ir pranešimų eilės duomenų srautiniam apdorojimui naudojant PivotTables.
  • API ir bibliotekos programavimo kalboms C++, Python, Java, Go.
  • Naudotojams ir administratoriams skirta žiniatinklio sąsaja, palaikanti naršymą medį primenančioje saugykloje.

Galiausiai, jei norite sužinoti daugiau , turėtumėte žinoti, kad projekto kodas parašytas C/C++ kalba ir yra atvirojo kodo pagal „Apache 2.0“ licenciją. Daugiau informacijos galite rasti šioje nuorodoje.

„ GitHub “ saugykloje yra serverio kodas, skirtas „YTsaurus“, diegimo infrastruktūrai, kuri naudoja „k8s“, sistemos žiniatinklio sąsajai ir klientų SDK populiarioms programavimo kalboms, tokioms kaip C++, Java, Go ir Python.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje