Accueil > Analytics > Data Analytics > Apache Spark : histoire, avantages et fonctionnement du moteur Big Data le plus rapide
apache spark

Apache Spark : histoire, avantages et fonctionnement du moteur Big Data le plus rapide

Apache Spark est un moteur de traitement de données rapide dédié au Big Data. Il permet d’effectuer un traitement de larges volumes de données de manière distribuée (cluster computing). Très en vogue depuis maintenant quelques années, ce Framework est en passe de remplacer Hadoop. Ses principaux avantages sont sa vitesse, sa simplicité d’usage, et sa polyvalence. Découvrez tout ce que vous devez savoir sur Spark.

Spark est un moteur de traitement parallèle de données open source permettant d’effectuer des analyses de grande envergure par le biais de machines en clusters. Apache Spark permet notamment de traiter des données issues de référentiels de données comme Hadoop Distributed File System, les bases de données NoSQL, ou les data stores de données relationnels comme Apache Hive. Spark prend également en charge le traitement In-memory, ce qui permet d’augmenter les performances des applications analytiques du Big Data. Il peut aussi être utilisé pour un traitement conventionnel sur disque, si les ensembles de données sont trop volumineux pour la mémoire système.

Son principal avantage est sa vitesse, puisqu’il permet de lancer des programmes 100 fois plus rapidement que Hadoop MapReduce in-memory, et 10 fois plus vite sur disque. Son moteur d’exécution DAG avancé supporte le flux de données acyclique et le computing in-memory. Spark est également facile à utiliser, et permet de développer des applications en Java, Scala, Python et R. Son modèle de programmation est plus simple que celui d’Hadoop. Grâce à plus de 80 opérateurs de haut niveau, le logiciel permet de développer facilement des applications parallèles.

Un autre avantage d’ Apache Spark est sa généralité. Il fait à la fois office de moteur de requêtes SQL, de logiciel de traitement de données en flux (Spark Streaming), et de système de traitement par graphes (GraphX). 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.

Spark peut être exécuté sur des clusters Hadoop 2 reposant sur le gestionnaire de ressources YARN, ou sur Mesos. Il est également possible de le lancer sous forme autonome ou sur le cloud avec le service Elastic Compute Cloud de Amazon. Il permet d’accéder à diverses sources de données comme HDFS, Cassandra, Hbase et S3.

L’autre point fort de Spark est sa communauté massive. Spark est utilisé par un grand nombre d’entreprises pour le traitement d’ensembles de données volumineux. Cette communauté peut être jointe par le biais d’une liste d’adresses mail, ou encore dans le cadre d’événements et de sommets. En tant que plateforme open source, Apache Spark est développé par un grand nombre de développeurs en provenance de plus de 200 entreprises. Depuis 2009, plus de 1000 développeurs ont contribué au projet.

De par sa vitesse de traitement de données, sa capacité à fédérer de nombreux types de bases de données et à exécuter des applications analytiques diverses, Spark peut permettre d’unifier toutes les applications de Big Data. C ‘est la raison pour laquelle ce Framework pourrait prochaine supplanter Hadoop.

Apache Spark vs Hadoop

apache spark vs hadoop

Depuis plus de 10 ans, Hadoop est considéré comme la principale technologie de traitement de données Big Data. Il s’agit effectivement d’une solution de choix pour le traitement de larges ensembles de données. Pour les calculs « one-pass », MapReduce est effectivement très efficace, mais se retrouve moins pratique pour les cas d’usage nécessitant des calculs multi-pass et des algorithmes. Pour cause, chaque étape du traitement de données est décomposée entre une phase Map et une phase Reduce.

Entre chaque étape, les données doivent être stockées dans le Sytème de Fichier Distribué avant que la prochaine étape ne puisse débuter. Dans la pratique, cette approche se révèle très lente. De plus, les solutions Hadoop incluent généralement des clusters difficiles à configurer et à gérer. Plusieurs outils doivent également être intégrés pour les différents cas d’usage Big Data. Pour le Machine Learning, il faudra par exemple utiliser Mahout. Pour le traitement de flux de données, il sera nécessaire d’intégrer Storm.

De son côté, Apache Spark permet aux programmeurs de développer des pipelines de données multi-step complexes en utilisant des patterns DAG. Spark prend également en charge le partage de données in-memory à travers les DAGs, permettant d’effectuer différentes tâches avec les mêmes données. Spark est exécuté à partir d’une infrastructure HDFS existante pour fournir des fonctionnalités améliorées et additionnelles. Il permet de déployer des applications Spark sur un cluster Hadoop V1 avec SIMR, un cluster Hadoop V2 YARN ou sur Apache Mesos.

Plutôt qu’un remplacement d’Hadoop, Spark peut être considéré comme une alternative à Hadoop MapReduce. Spark n’a pas pour vocation de remplacer Hadoop, mais de fournir une solution unifiée et compréhensible pour gérer différents cas d’usage Big Data.

L’histoire d’ Apache Spark

apache spark fonction

À l’origine, Spark fut créé en 2009 dans le laboratoire AMPLab de l’université de Berkeley par Matei Zaharia. Le projet avait pour but initial de profiter de la baisse du coût de la RAM, et de répondre à l’augmentation exponentielle des données Big Data. Il fut ensuite lancé en open source en 2010 sous licence BSD. En 2013, le projet fut confié à Apache Software Foundation, et passa sous licence Apache 2.0.

Apache a intégré le projet à son incubateur, et l’a placé au rang de Top-Level Project en 2014. La version 1.0.0 fut lancée en 2014. En novembre 2014, l’entreprise de Zaharia, Databricks, a battu le record de classification de données à grande échelle en utilisant Spark. Avec plus de 1000 contributeurs en 2015, Spark est devenu l’un des projets les plus actifs de la Apache Software Foundation, est l’un des projets big data open source les plus actifs également. Face à la popularité de la plateforme, des entreprises comme General Assembly ou The Data Incubator proposent depuis 2014 des formations pour maîtriser Apache Spark.

En juillet 2016, Apache Spark est passé en version 2.0. Cette mise à jour majeure améliorer notamment la simplicité d’usage de l’API et d’améliorer les performances. Elle apporte également la prise en charge de SQL 2003, R UDF, et le streaming structuré. Par ailleurs, cette version regroupe 2500 patchs en provenance de plus de 300 contributeurs. La version actuelle de Apache Spark est la version 2.2 lancée le 11 juillet 2017.

A lire également

data visualization top meilleurs outils

Data Visualization : top des meilleurs outils de visualisation de données

Il est parfois difficile de présente des données de façon compréhensible à des personnes qui ne …

Send this to friend