Spark


Apache Spark est un système de traitement distribué à code source ouvert, utilisé pour les charges de travail liées aux données volumineuses. Il utilise la mise en cache en mémoire et l’exécution optimisée des requêtes pour des requêtes analytiques rapides sur des données de toute taille. Il fournit des API de développement en Java, Scala, Python et R, et prend en charge la réutilisation du code dans plusieurs charges de travail : traitement par lots, requêtes interactives, analyses en temps réel, apprentissage automatique et traitement des graphes. Il est utilisé par des organisations de tous les secteurs, notamment par FINRA, Yelp, Zillow, DataXu, Urban Institute et CrowdStrike. Apache Spark est devenu l’un des cadres de traitement distribué de big data les plus populaires, avec 365 000 membres de meetup en 2017.

Comment fonctionne ce framework ?

Hadoop MapReduce est un modèle de programmation pour le traitement de grands ensembles de données avec un algorithme parallèle et distribué. Les développeurs peuvent écrire des opérateurs massivement parallélisés, sans avoir à se soucier de la distribution du travail et de la tolérance aux pannes. Cependant, le processus séquentiel à plusieurs étapes nécessaire à l’exécution d’un travail constitue un défi pour MapReduce. À chaque étape, MapReduce lit les données du cluster, effectue des opérations et réécrit les résultats dans HDFS. Comme chaque étape nécessite une lecture et une écriture sur le disque, les travaux MapReduce sont plus lents en raison de la latence des E/S sur le disque.

Spark a été créé pour remédier aux limites de MapReduce, en effectuant le traitement en mémoire, en réduisant le nombre d’étapes d’un travail et en réutilisant les données dans plusieurs opérations parallèles.
Avec Spark, une seule étape est nécessaire : les données sont lues en mémoire, les opérations sont effectuées et les résultats sont réécrits, ce qui permet une exécution beaucoup plus rapide. De même, il réutilise les données en se servant d’un cache en mémoire pour accélérer considérablement les algorithmes d’apprentissage automatique qui appellent de façon répétée une fonction sur le même ensemble de données. La réutilisation des données s’effectue par la création de DataFrames, une abstraction par rapport à Resilient Distributed Dataset (RDD), qui est une collection d’objets mis en cache en mémoire et réutilisés dans plusieurs opérations Spark. Cela réduit considérablement la latence, ce qui rend ce framework plusieurs fois plus rapide que MapReduce, en particulier lors de l’apprentissage automatique et de l’analyse interactive.

Quels sont ses avantages ?

Les avantages d’Apache Spark sont nombreux et en font l’un des projets les plus actifs de l’écosystème Hadoop. En voici quelques-uns :

  • Rapidité

Grâce à la mise en cache en mémoire et à l’exécution optimisée des requêtes, il peut exécuter des requêtes analytiques rapides sur des données de toute taille.

  • Convivialité pour les développeurs

Apache Spark prend en charge nativement Java, Scala, R et Python, ce qui offre une variété de langages pour créer des applications. Ces API facilitent la tâche des développeurs, car elles dissimulent la complexité du traitement distribué derrière des opérateurs simples et de haut niveau qui réduisent considérablement la quantité de code nécessaire.

  • Charges de travail multiples

Il offre la possibilité d’exécuter plusieurs charges de travail, notamment des requêtes interactives, des analyses en temps réel, l’apprentissage automatique et le traitement des graphes. Une application peut combiner plusieurs charges de travail de manière transparente.

Aller en haut