apache spark big data moteur

Apache Spark : histoire et avantages du moteur Big Data

est un moteur de traitement de données rapide dédié au . 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 . Ses principaux avantages sont sa vitesse, sa simplicité d'usage, et sa polyvalence. Découvrez tout ce que vous devez savoir sur Apache Spark.

C'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. Il ne faut pas le confondre avec le logiciel de messagerie de Cisco disponible Spark sur Windows, ni avec le réseau social d'. Codé en Scala, 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. Ce moteur 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.

Définition Apache Spark : le Big Data comme application principale

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. Il 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.

Le moteur 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 ce moteur est sa communauté massive. Apache 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. Cela permet de rendre disponible de nombreux tutoriels de Spark.

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, il peut permettre d'unifier toutes les applications de Spark Big Data. C'est la raison pour laquelle ce Framework pourrait prochaine supplanter Hadoop.

Big Data : 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 , 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. Il 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 sur un cluster Hadoop V1 avec SIMR, un cluster Hadoop V2 YARN ou sur Apache Mesos.

Plutôt qu'un remplacement d'Hadoop, il peut être considéré comme une alternative Spark à 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, ce moteur 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, il 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.

Les actualités récentes du moteur 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.

Le 16 novembre dernier, annoncé le support de cette nouvelle version du moteur de traitements de données par son Cloud Azure. Ainsi, les développeurs peuvent utiliser leurs outils de base de données pour effectuer leur recherche Big Data. Pour cela, la firme de Redmond a fait confiance à Databricks qui s'est chargé d'intégrer sa dernière version dans le Cloud Azure. Cassandra et MariaDB sont également disponibles pour les entreprises les préférant, mais l'entreprise fondée par semble avoir une préférence pour le moteur star de cet article.

L'on apprend également que les entreprises sont particulièrement friandes de Spark afin de constituer des lacs de données nécessaires à leurs métiers. C'est l'entreprise Syncsort spécialisé dans les technologies Big Data qui a réalisé un sondage auprès de 200 responsables IT. Près de 70 % d'entre eux utilisent un moteur de traitement de données comme celui-ci ou Hadoop pour constituer ces lacs de données.

Newsletter

Envie de ne louper aucun de nos articles ? Abonnez vous pour recevoir chaque semaine les meilleurs actualités avant tout le monde.

Cliquez pour commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *