Yandex a publié le code source de YTsaurus

YTsaurus

YTsaurus est une plate-forme de stockage et de traitement distribuée pour le Big Data prenant en charge le modèle MapReduce.

Il y a quelques jours, Yandex a annoncé l' ouverture du code source de la plateforme YTsauru, utilisée pour le stockage et le traitement distribués de grandes quantités de données, prenant en charge la manipulation des données à l'aide du paradigme MapReduce, du moteur de requêtes SQL, du système de fichiers distribué et du stockage NoSQL au format clé-valeur.

YTsaurus est utilisé dans l'infrastructure de Yandex pour exploiter efficacement la puissance de calcul des supercalculateurs de l'entreprise. La plateforme peut évoluer vers des clusters de plus de 10 000 nœuds, couvrant jusqu'à un million de processeurs et des milliers de GPU (pour les tâches d'apprentissage automatique).

Les conteneurs isolés exécutés sur des serveurs physiques peuvent être utilisés comme unités de cluster. Le stockage peut contenir des exaoctets de données situées sur divers supports tels que des disques durs, des SSD, des NVME et de la RAM.

Le cluster prend en charge l'ajout et la suppression dynamiques de nœuds, la redondance (pas de point de défaillance unique), la réplication automatique, les mises à niveau logicielles actives du cluster et la récupération automatique de la redondance en cas de défaillance du nœud.

Trois types de clusters sont pris en charge : les clusters de calcul (pour le traitement parallèle massif de données volumineuses à l’aide d’opérations MapReduce), les clusters pour les tables pivots et le stockage clé-valeur, et les clusters géographiquement distribués.

Un service basé sur une plate-forme peut fournir les moyens de stocker et de traiter des données pour des dizaines de milliers d'utilisateurs. Les applications YTsaurus typiques dans Yandex incluent le stockage d'informations sur les utilisateurs du réseau publicitaire, la formation de modèles d'apprentissage automatique, la formation d'un index de recherche et la création d'un entrepôt de données pour des services tels que Yandex Taxi. , Food, Lavka et les livraisons

Parmi les cas d'utilisation de base, il est mentionné :

  • Le traitement par lots: MapReduce et SPYT (Apache Spark comme moteur de calcul sur les données dans YTsaurus) pour le traitement de données structurées et semi-structurées : enregistrements ou transactions financières.
  • Analyse ad hoc : Requêtes rapides via CHYT (un groupe de serveurs ClickHouse sur des nœuds de calcul YTsaurus) sans copier les données vers un système d'analyse séparé. ODBC et JDBC avec la possibilité de connecter BI pour la visualisation.
  • Tâches OLTP : Travail transactionnel en temps réel avec stockage clé-valeur : par exemple, stockage de profil utilisateur, affichage d'annonces ou traitement de flux.
  • Apprentissage automatique : Gérez les clusters GPU pour former des modèles avec des milliards de paramètres.
  • Stockage des méta-informations : Stockage transactionnel des méta-informations et service fiable des verrous distribués.
  • Création d'entrepôts de données et ETL pour le traitement de données multi-tiers à l'aide d'outils typiques : Apache Spark, SQL, MapReduce.

Alors que de la part des principaux éléments de l'architecture, les éléments suivants sont mentionnés:

  • Système de fichiers distribué et stockage de méta-informations basé sur une arborescence tolérante aux pannes Cypress.
  • Planificateur pour l'informatique distribuée avec prise en charge du modèle MapReduce, ainsi que des opérations de base avancées.
  • Évolutivité horizontale des opérations informatiques.
  • Isolation des ressources de calcul et possibilité d'allouer certaines ressources de calcul (CPU, GPU, RAM) dans des proportions différentes.
  • Tableaux croisés dynamiques pour la création de stockage OLTP, prise en charge du stockage basé sur MVCC, transactions, possibilité de supprimer des données après expiration et files d'attente de messages pour le traitement des données en continu sur des tableaux croisés dynamiques.
  • API et bibliothèques pour les langages de programmation C++, Python, Java, Go.
  • Une interface Web pour les utilisateurs et les administrateurs qui prend en charge la navigation dans un stockage arborescent.

Enfin, si vous souhaitez en savoir plus , sachez que le code du projet est écrit en C/C++ et est open source sous licence Apache 2.0. Vous trouverez plus de détails en suivant ce lien.

Le dépôt GitHub contient le code serveur de YTsaurus, l'infrastructure de déploiement qui utilise k8s, une interface web pour le système et des SDK clients pour les langages de programmation populaires tels que C++, Java, Go et Python.


Ajouter comme source préférée dans Google