Actuellement, la dernière version du JDK gérée par Spark 3.3 est la version 8. Vous avez le choix entre la version Oracle (propriétaire) et OpenJDK (libre).
Spark SQL permet d'exécuter des requêtes en langages SQL afin de changer et transformer des données. Spark streaming offre à son utilisateur un traitement des données en flux. Il utilise les données en temps-réel. Spark graphX traite des informations issues de graphes.
Spark est un framework open source de calcul distribué. Plus performant qu'hadoop, disponible avec trois langages principaux (Scala, Java, Python), il s'est rapidement taillé une place de choix au sein des projets Big Data pour le traitement massif de données aussi bien en batch qu'en streaming.
Historique. En 2009, Spark fut conçu par Matei Zaharia (en) lors de son doctorat au sein de l'université de Californie à Berkeley.
La différence fondamentale entre Hadoop MapReduce et Spark est que Spark écrit les données en RAM, et non sur disque. Ceci a plusieurs conséquences importantes sur la rapidité de traitement des calculs ainsi que sur l'architecture globale de Spark.
Spark apporte une réponse satisfaisante à ces limites grâce à son abstraction de données principale appelée RDD (Resilient distributed dataset – jeu de données distribué et résilient). Le RDD est une « collection » d'éléments partitionnée et distribuées à travers les nœuds du cluster.
Apache Spark comprend plusieurs bibliothèques permettant la création d'applications pour l'apprentissage machine (MLlib), le traitement des flux (Spark Streaming) et le traitement des graphes (GraphX).
Traitement rapide : PySpark nous permet d'atteindre une grande vitesse de traitement des données, qui est environ 100 fois plus rapide en mémoire et 10 fois plus rapide sur le disque.
L'objectif recherché par les inventeurs de Spark est d'offrir différentes vues et moyens d'accéder aux données sans devoir changer d'outil. La dernière librairie disponible est SparkR qui va permettre aux habitués du langage R de travailler nativement sur un cluster distribué.
La solution Apache Kafka peut traiter des millions de points de données par seconde. Elle est donc parfaitement adaptée pour relever les défis liés au Big Data. Toutefois, elle peut également être utile aux entreprises qui, à l'heure actuelle, n'ont pas à gérer des volumes colossaux de données.
Un cluster Spark se compose d'un master et d'un ou plusieurs workers. Le cluster doit être démarré et rester actif pour pouvoir exécuter des applications. Le master a pour seul responsabilité la gestion du cluster et il n'exécute donc pas de code MapReduce. Les workers, en revanche, sont les exécuteurs.
La différence essentielle est que dans Spark, les RDD ou DataFrames peuvent être marquées comme étant persistants car ils peuvent être réutilisés dans d'autres chaînes. Spark fait son possible pour stocker les structures persistantes en mémoire RAM, pour un maximum d'efficacité.
Pourquoi utiliser Scala? Scala facilite l'évolution progressive des programmes dans le temps. Le code Scala peut facilement s'interfacer avec du code Java prééxistant. Il est en fait compilé en bytecode Java.
Pour suivre une formation PySpark, vous pouvez choisir les formations DataScientest. Avec notre formation Data Scientist, vous apprendrez la programmation en Python. Le Machine Learning avec PySpark est au coeur du module Big Data, aux côtés du langage SQL.
Aucun système de gestion de fichiers
Apache Spark n'a pas son propre système de gestion de fichiers. Il repose donc sur une autre plate-forme comme Hadoop ou une autre plate-forme sur le cloud. C'est l'un des problèmes connus de Spark.
Le mot “Scala”, qui lui donne son nom, est une combinaison de deux mots : Scalable (évolutif) et Language (langage). Cela signifie qu'il est destiné à évoluer en fonction des besoins de ses utilisateurs. La syntaxe ou la structure de Scala est différente de celle de Java. Elle est plus “compacte”.
Spark DataFrame :
Il permet aux programmeurs de définir un schéma sur une collection de données distribuée. Chaque ligne d'un DataFrame est une ligne de type objet. Comme une table SQL, chaque colonne doit avoir le même nombre de lignes dans un DataFrame.
Spark Context
La première chose à faire lorsque l'on veut utiliser Spark est de créer un objet SparkContext, généralement assigné à une variable nommée sc dans le code. Cet objet indique à Spark comment accéder au cluster de serveurs que vous souhaitez utiliser.
Spark est un outil qui permet de gérer et de coordonner l'exécution de tâches sur des données à travers un groupe d'ordinateurs. Spark (ou Apache Spark) est un framework open source de calcul distribué in-memory pour le traitement et l'analyse de données massives.
Un autre problème est qu'Hadoop est difficile à maîtriser. Il y a donc peu de programmeurs suffisamment compétents pour utiliser MapReduce. C'est la raison pour laquelle beaucoup de fournisseurs ajoutent une technologie de base de données SQL par dessus Hadoop.
Apache Spark regroupe aussi une grande quantité de bibliothèques d'algorithmes MLib pour le Machine Learning. Ces bibliothèques peuvent être combinées en toute simplicité au sein de la même application. Le moteur peut être exécuté sur des clusters Hadoop 2 reposant sur le gestionnaire de ressources YARN, ou sur Mesos.
Les entreprises qui utilisent Kafka
Daumkakao. Everteam. LinkedIn. Netflix.
Un cluster Kafka est constitué d'un ou de plusieurs serveurs (broker Kafka) fonctionnant sous Kafka. Il est possible de faire fonctionner un seul broker Kafka, mais cela ne donne pas tous les avantages que Kafka dans un cluster peut donner, par exemple, la réplication des données.