(Présentation de Spark en collaboration avec )
Spark est un framework de calcul distribué open-source utilisant des composants et une architecture définie. Spark permet de travailler sur l'ensemble des données en même temps ce qui lui donne une vitesse de traitement importante. De plus il travaille directement dans la mémoire et utilise des disques que lorsque que la mémoire n'a plus de capacité.
Spark est composé de différents éléments dont Spark core qui est le noyeau de Spark ainsi que d'autres :
source : https://liliasfaxi.github.io/Atelier-Spark/p2-spark/
Une application Spark va fonctionner sur un cluster. L'application va être coordonnée par le SparkContext qui est un objet dans le programme principal qui est appelé driver program servant de leader dans la suite.
Spark peut utiliser plusieurs types de cluster qui peuvent varier d'une application à une autre en fonction des besoins.
Ces gestionnaires vont servir à l'exécution d'applications Spark. Lorsque le Driver program est connecté, il va lancer des exécuteurs, jouant le rôle de suiveurs, sur les noeuds d'un cluster. Ces exécuteurs vont traiter et stocker des données pour l'application. Ils attendent du Driver program de recevoir le code de l'application ainsi que les tâches à effectuer.
source : https://liliasfaxi.github.io/Atelier-Spark/p2-spark/
On voit souvent des articles qui comparent Hadoop MapReduce et Spark. Ce qui est une erreur car les deux ne sont pas des opposés. Ils peuvent fonctionner l'un sans l'autre mais peuvent aussi fonctionner ensemble pour être plus efficace.
MapReduce lui va déplacer les données à traiter entièrement sur des disques alors que Spark va tout mettre dans la RAM (Random Access Memory) ce qui fait qu'il sera plus rapide que MapReduce mais Spark a besoin d'un système de fichiers comme point de départ. C'est dans ce cas là que les deux travaillent ensemble. Hadoop va fournir le système de fichier que Spark demande.
Une autre différence entre Spark et MapReduce est que MapReduce ne travaille que par lots alors que Spark fait du temps réel. En réalité Spark fait un traitement proche du temps réel car il ne traite pas un flux de données mais des petits paquets de données mais la vitesse de traitement donne un résultat proche du temps réel.
Spark a des avantages mais aussi des défauts.
Parmi ces avantages, il ya :
Parmi les défauts, il ya :