Maison > Article > Opération et maintenance > qu'est-ce qu'Apache Spark
Spark est un système informatique en cluster open source basé sur l'informatique en mémoire, visant à accélérer l'analyse des données. Spark est très petit et exquis et a été développé par une petite équipe dirigée par Matei du laboratoire AMP de l'Université de Californie à Berkeley. Le langage utilisé est Scala et le code de la partie principale du projet ne contient que 63 fichiers Scala, ce qui est très court et concis.
Spark est un environnement informatique en cluster open source similaire à Hadoop, mais il existe quelques différences entre les deux. Ces différences utiles rendent Spark supérieur dans certaines charges de travail. En d'autres termes, Spark permet des ensembles de données distribués en mémoire. optimiser les charges de travail itératives en plus de pouvoir fournir des requêtes interactives.
Spark est implémenté dans le langage Scala et utilise Scala comme framework d'application. Contrairement à Hadoop, Spark et Scala sont étroitement intégrés, Scala permettant de manipuler des ensembles de données distribués aussi facilement que des objets de collection locaux.
Bien que Spark ait été créé pour prendre en charge les tâches itératives sur des ensembles de données distribués, il est en réalité complémentaire à Hadoop et peut s'exécuter en parallèle sur le système de fichiers Hadoop. Ce comportement est pris en charge via un framework de cluster tiers appelé Mesos. Développé par l'AMP Lab (Algorithms, Machines, and People Lab) de l'UC Berkeley, Spark peut être utilisé pour créer des applications d'analyse de données à grande échelle et à faible latence.
Architecture informatique en cluster Spark
Bien que Spark présente des similitudes avec Hadoop, il fournit un nouveau cadre informatique en cluster avec des différences utiles. Premièrement, Spark est conçu pour un type spécifique de charge de travail dans le cluster computing, à savoir celles qui réutilisent des ensembles de données de travail (tels que les algorithmes d'apprentissage automatique) entre des opérations parallèles. Pour optimiser ces types de charges de travail, Spark introduit le concept de cluster computing en mémoire, dans lequel les ensembles de données sont mis en cache en mémoire pour réduire la latence d'accès.
Spark introduit également une abstraction appelée Resilient Distributed Dataset (RDD). Un RDD est une collection d'objets en lecture seule répartis sur un ensemble de nœuds. Ces collections sont résilientes et peuvent être reconstruites si une partie de l'ensemble de données est perdue. Le processus de reconstruction d'ensembles de données partiels repose sur des mécanismes de tolérance aux pannes qui maintiennent la « lignée » (c'est-à-dire les informations qui permettent la reconstruction d'ensembles de données partiels sur la base de processus de dérivation de données). Un RDD est représenté comme un objet Scala, qui peut être créé à partir d'un fichier ; une tranche parallélisée (répartie sur les nœuds) et finalement une modification complète de la persistance du RDD existant, comme les requêtes mises en cache ; en mémoire.
Les applications dans Spark sont appelées pilotes, et ces pilotes implémentent des opérations qui sont effectuées sur un seul nœud ou en parallèle sur un ensemble de nœuds. Comme Hadoop, Spark prend en charge les clusters à nœud unique ou les clusters à plusieurs nœuds. Pour le fonctionnement multi-nœuds, Spark s'appuie sur le gestionnaire de cluster Mesos. Mesos fournit une plate-forme efficace pour le partage et l'isolation des ressources pour les applications distribuées. Cette configuration permet à Spark et Hadoop de coexister dans un pool partagé de nœuds.
Pour des articles plus techniques liés à Apache, veuillez visiter la colonne Tutoriel Apache pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!