Apache Spark est un framework de calcul Big Data dont le rôle est d’exécuter des analyses sophistiquées. Rapide et facile d’utilisation, il peut être développé de plusieurs façons comme dans le streaming de données, le Machine Learning ou encore le traitement de graphiques. Aussi, Apache Spark prend en charge les langages de programmation tels que Scala, Python, R. In. et Java.
Apache Spark, qu’est-ce que c’est ?
Apache Spark est un framework de calcul distribué. Ainsi, ce n’est pas un langage de programmation, mais plutôt un ensemble informatiques écrits originairement en Scala, mais qui prend maintenant en charge Python, R, Java et même SQL. En effet, le calcul distribué constitue en l’exécution d’opérations sur des données non sauvegardées en un seul endroit, dispersées dans un réseau de distinctes machines. Spark assure donc la bonne marche et à l’orchestration de calculs tout en permettant d’assurer une cohérence des résultats. Cependant, Spark ne gère pas les données lui-même, car il s’occupe seulement du calcul en s’appuyant sur une infrastructure de données distribuées afin de gérer leur stockage dans le cluster. Comparé aux autres technologies big data et MapReduce comme Storm ou Hadoop, Spark présente plusieurs avantages. Spark offre un framework plus complet et unifié pour répondre aux demandes de traitements Big Data pour divers jeux de données et permet aussi à des applications sur clusters Hadoop d’être réalisées 100 fois plus vite sur mémoire et 10 fois plus vite sur disque. Il sert également d’alternative pour effectuer des requêtes des données depuis un shell.
L’architecture de Spark
L’architecture de Spark dispose de trois grands composants que sont : le stockage des données, l’API et le framework de gestion des ressources. Zoom sur les composants en détails :
Le stockage des données
Pour le stockage des données, Spark utilise en effet le système de fichiers HDFS. Ceci peut marcher avec n’importe quelle source de données associable avec Hadoop, HBase, Cassandra, etc.
L’API
L’API est utilisable en Java, Scala et Python et permet aux développeurs de créer des applications Spark en se servant d’une API Standard.
La gestion des ressources
On peut distribuer Spark comme serveur autonome ou sur un framework de traitements distribués comme YARN ou Mesos.
Les fonctionnalités de Spark
Grâce à des étapes de shuffle généralement moins coûteuses, Spark peut apporter des MapReduce. À noter aussi qu’avec le stockage en mémoire et un traitement plus ou moins proche du temps-réel, la performance peut être plusieurs fois plus rapide que certaines technologies Big Data. Spark supporte les lazy evaluation des requêtes, ce qui représente une grande aide à l’optimisation des étapes de traitement. Et que dire de son API de haut-niveau qui permet un meilleur rendement et un modèle architectural cohérent pour des solutions Big Data. Aussi, Spark conserve les résultats intermédiaires en mémoire plutôt que sur disque, ce qui est avantageux, surtout s’il faut travailler à maintes reprises sur le même jeu de données. Spark dispose d’autres fonctionnalités à savoir : optimisation de graphes d’opérateurs arbitraires, évaluation paresseuse des requêtes, API concise et cohérente en Scala, Python et Java, shell interactif pour Python et Scala.
No Comment