Η Yandex κυκλοφόρησε τον πηγαίο κώδικα του YTsaurus

ΥΤσαύρος

Το YTsaurus είναι μια κατανεμημένη πλατφόρμα αποθήκευσης και επεξεργασίας μεγάλων δεδομένων με υποστήριξη για το μοντέλο MapReduce.

Πριν από λίγες ημέρες, η Yandex ανακοίνωσε τον ανοιχτού κώδικα της πλατφόρμας YTsauru, η οποία χρησιμοποιείται για κατανεμημένη αποθήκευση και επεξεργασία μεγάλων ποσοτήτων δεδομένων, υποστηρίζοντας τον χειρισμό δεδομένων χρησιμοποιώντας το παράδειγμα MapReduce, τη μηχανή ερωτημάτων SQL, το κατανεμημένο σύστημα αρχείων και την αποθήκευση NoSQL σε μορφή κλειδιού-τιμής.

Το YTsaurus χρησιμοποιείται στην υποδομή της Yandex για την αποτελεσματική αξιοποίηση της υπολογιστικής ισχύος των υπερυπολογιστών της εταιρείας. Η πλατφόρμα μπορεί να κλιμακωθεί σε clusters με περισσότερους από 10.000 κόμβους, καλύπτοντας έως και ένα εκατομμύριο επεξεργαστές και χιλιάδες GPU (για εργασίες μηχανικής μάθησης).

Τα απομονωμένα κοντέινερ που εκτελούνται σε φυσικούς διακομιστές μπορούν να χρησιμοποιηθούν ως μονάδες συμπλέγματος. Η αποθήκευση μπορεί να περιέχει exabyte δεδομένων που βρίσκονται σε διάφορα μέσα, όπως σκληρούς δίσκους, SSD, NVME και RAM.

Το σύμπλεγμα υποστηρίζει δυναμική προσθήκη και αφαίρεση κόμβων, πλεονασμό (κανένα σημείο αποτυχίας), αυτόματη αναπαραγωγή, ενεργές ενημερώσεις λογισμικού συμπλέγματος και αυτόματη ανάκτηση πλεονασμού σε περίπτωση αποτυχίας κόμβου.

Υποστηρίζονται τρεις τύποι συμπλεγμάτων: συμπλέγματα υπολογισμού (για μαζική παράλληλη επεξεργασία μεγάλων δεδομένων χρησιμοποιώντας λειτουργίες MapReduce), συμπλέγματα για συγκεντρωτικούς πίνακες και αποθήκευση κλειδιών-τιμών και γεωγραφικά κατανεμημένα συμπλέγματα.

Μια υπηρεσία που βασίζεται σε πλατφόρμα μπορεί να παρέχει τα μέσα αποθήκευσης και επεξεργασίας δεδομένων για δεκάδες χιλιάδες χρήστες. Οι τυπικές εφαρμογές YTsaurus στο Yandex περιλαμβάνουν την αποθήκευση πληροφοριών σχετικά με τους χρήστες του δικτύου διαφημίσεων, την εκπαίδευση μοντέλων μηχανικής εκμάθησης, τη δημιουργία ευρετηρίου αναζήτησης και τη δημιουργία αποθήκης δεδομένων για υπηρεσίες όπως το Yandex Taxi. , Τρόφιμα, Lavka και παραδόσεις

Από τις βασικές περιπτώσεις χρήσης αναφέρεται:

  • Επεξεργασία παρτίδας: MapReduce και SPYT (Apache Spark ως υπολογιστική μηχανή για δεδομένα στο YTsaurus) για την επεξεργασία δομημένων και ημιδομημένων δεδομένων: αρχεία ή οικονομικές συναλλαγές.
  • Ad hoc ανάλυση: Γρήγορες ερωτήσεις μέσω CHYT (μια ομάδα διακομιστών ClickHouse σε κόμβους υπολογισμού YTsaurus) χωρίς αντιγραφή δεδομένων σε ξεχωριστό σύστημα ανάλυσης. ODBC και JDBC με δυνατότητα σύνδεσης BI για οπτικοποίηση.
  • Εργασίες OLTP: Εργασία συναλλαγών σε πραγματικό χρόνο με αποθήκευση κλειδιού-τιμής: για παράδειγμα, αποθήκευση προφίλ χρήστη, προβολή διαφημίσεων ή επεξεργασία ροής.
  • Μηχανική μάθηση: Διαχειριστείτε συμπλέγματα GPU για να εκπαιδεύσετε μοντέλα με δισεκατομμύρια παραμέτρους.
  • Αποθήκευση μετα πληροφοριών: Συναλλακτική αποθήκευση μεταπληροφοριών και αξιόπιστη εξυπηρέτηση κατανεμημένων κλειδαριών.
  • Δημιουργία αποθηκών δεδομένων και ETL για επεξεργασία δεδομένων πολλαπλών επιπέδων με χρήση τυπικών εργαλείων: Apache Spark, SQL, MapReduce.

Ενώ από την πλευρά των βασικών στοιχείων της αρχιτεκτονικής αναφέρονται τα εξής:

  • Κατανεμημένο σύστημα αρχείων και αποθήκευση μεταπληροφοριών σε δέντρο με ανοχή σε σφάλματα Cypress.
  • Χρονοδιάγραμμα κατανεμημένων υπολογιστών με υποστήριξη για το μοντέλο MapReduce, καθώς και προηγμένες βασικές λειτουργίες.
  • Οριζόντια επεκτασιμότητα λειτουργιών πληροφορικής.
  • Απομόνωση υπολογιστικών πόρων και δυνατότητα κατανομής ορισμένων υπολογιστικών πόρων (CPU, GPU, RAM) σε διαφορετικές αναλογίες.
  • Συγκεντρωτικοί πίνακες για τη δημιουργία αποθηκευτικού χώρου OLTP, υποστήριξη για αποθήκευση που βασίζεται σε MVCC, συναλλαγές, δυνατότητα διαγραφής δεδομένων μετά τη λήξη και ουρές μηνυμάτων για επεξεργασία δεδομένων ροής μέσω Συγκεντρωτικών πινάκων.
  • API και βιβλιοθήκες για γλώσσες προγραμματισμού C++, Python, Java, Go.
  • Μια διεπαφή ιστού για χρήστες και διαχειριστές που υποστηρίζει την πλοήγηση μέσω ενός χώρου αποθήκευσης που μοιάζει με δέντρο.

Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα , θα πρέπει να γνωρίζετε ότι ο κώδικας του έργου είναι γραμμένος σε C/C++ και είναι ανοιχτού κώδικα με την άδεια Apache 2.0. Μπορείτε να βρείτε περισσότερες λεπτομέρειες στον παρακάτω σύνδεσμο.

Το αποθετήριο GitHub περιέχει τον κώδικα διακομιστή για το YTsaurus, την υποδομή ανάπτυξης που χρησιμοποιεί το k8s, μια διεπαφή ιστού για το σύστημα και SDK-πελατών για δημοφιλείς γλώσσες προγραμματισμού όπως C++, Java, Go και Python.


Προσθήκη ως προτιμώμενης πηγής στην Google