in

Spark : présentation de cette solution d’Apache

Spark Apache est considérée comme la plateforme qui a écrasé Hadoop. Elle est rapide, flexible et conviviale pour les développeurs. Ce mécanisme est le leader pour le SQL à grande échelle, le traitement par lots, le traitement de flux et l'apprentissage automatique.

Apache Spark est devenu l'un des principaux frameworks de calcul en cluster au monde. Il peut être déployé de nombreuses manières, comme dans le , le streaming de données et le traitement de graphiques. Cette application prend en charge les langages de programmation tels que Python, Scala, Java et R. In. Pour en savoir plus, zoom sur cet article.

Apache Spark : définition

Apache Spark est une infrastructure de traitement de données pouvant effectuer rapidement des tâches de traitement sur des grands ensembles de données. Depuis ses modestes débuts à l'AMPLab de l'Université de Berkeley en 2009, il est devenu l'un des principaux frameworks de traitement distribué Big Data dans le monde. 

Ce système a également la faculté de répartir ces activités sur plusieurs ordinateurs, soit seul, soit en tandem avec d'autres outils informatiques distribués. Ces deux qualités sont essentielles dans le monde du big data et de l'apprentissage automatique. Ils nécessitent la mobilisation d'une puissance de calcul massive pour exploiter de grands ensembles de données.

Utilisation au quotidien

Spark soulage les développeurs de certaines tâches de programmation grâce à une API facile à utiliser. Ce dernier permet d'éliminer une grande partie du travail fastidieux de l'informatique distribuée et du traitement des données volumineuses.

Cette application est utilisée par les banques, les sociétés de télécommunications et des jeux, les gouvernements et surtout les géants de la technologie. Notamment , Facebook, et Microsoft.

Son architecture

À un niveau fondamental, une application Apache Spark se compose :

  • d'un pilote, qui convertit le code de l'utilisateur en plusieurs tâches pouvant être réparties sur les nœuds de travail, 
  • des exécuteurs, qui s'exécutent sur ces nœuds et effectuent les tâches qui leur sont assignées. Une certaine forme de gestionnaire de cluster est nécessaire pour assurer la médiation entre les deux.

Il peut fonctionner en mode autonome de cluster qui nécessite simplement le framework Apache Spark et une JVM sur chaque machine. Cependant, il est plus probable que vous souhaitiez profiter d'un système de gestion des ressources ou de cluster plus robuste pour vous occuper de l'affectation des travailleurs à la demande.

Dans une , cela signifie qu'il faut utiliser Hadoop YARN (c'est ainsi que les distributions Cloudera et Hortonworks exécutent les tâches Spark). Ce moteur d'analyses peut également fonctionner sur Mesos, Kubernetes et Docker Swarm.

Autres fonctionnements du système

Ce programme se trouve dans le cadre d'Amazon EMR, Google Dataproc et Microsoft Azure HDInsight pour les personnes qui recherchent une solution gérée. 

La société qui emploie les fondateurs de ce logiciel, propose également la Databricks Unified Analytics Platform. Cette dernière s'agit d'un service géré complet qui offre :

  • des clusters Apache Spark, 
  • une prise en charge de la diffusion en continu, 
  • un développement de notebook intégré basé sur le Web,
  • et des performances d'E / S cloud optimisées sur une distribution standard d'Apache Spark.

Apache Spark intègre les commandes de traitement des données de l'utilisateur dans un graphique acyclique dirigé, ou DAG. Le DAG est la couche de planification déterminant quelles tâches sont exécutées sur quels nœuds et dans quelle séquence.  

Spark vs Hadoop : pourquoi utiliser Apache Spark ?

A souligner que le terme Hadoop contre Spark est un peu mal formulé, car ce dernier se trouve dans la plupart des distributions Hadoop de nos jours. 

À cause des raisons ci-dessous, il est devenu le cadre de choix pour le traitement du Big Data, l'ancien paradigme MapReduce qui a fait de Hadoop une place de choix.

Traitement en mémoire

Le traitement en mémoire est plus rapide par rapport à Hadoop. En effet, il n'y a pas de temps passé à déplacer des données/processus à l'intérieur et à l'extérieur du disque. Il est 100 fois plus rapide que MapReduce, car tout est fait en mémoire.

Traitement de flux

Apache Spark prend en charge le traitement de flux, qui implique une entrée et une sortie continues de données. On l'appelle également appelé traitement en temps réel.

 

Moins de latence

Cette application est relativement plus rapide que Hadoop, car elle met en cache la plupart des données d'entrée en mémoire par le Resilient Distributed Dataset (RDD).

RDD gère le traitement distribué des données et la transformation de ces données. C'est là que Spark effectue la plupart des opérations telles que la transformation et la gestion des données. Chaque ensemble de données d'un RDD est partitionné en partie logiques, qui peuvent ensuite être calculées sur différents nœuds d'un cluster.

Évaluation paresseuse

Spark commence l'évaluation uniquement lorsque cela est absolument nécessaire. Cela joue un rôle important en contribuant à sa rapidité.

Moins de lignes de code

Bien que Spark soit écrit à la fois en Scala et en Java, l'implémentation est en Scala. Le nombre de lignes est relativement moindre dans Spark par rapport à Hadoop.

Pour couronner le tout, l'API Spark est conviviale pour les développeurs. Aussi importante que soit l'accélération de ce logiciel, on pourrait soutenir que la convivialité de ce système est encore plus importante.

Composants de Spark

Spark dans son ensemble se compose de diverses bibliothèques, API, bases de données, etc. Ses principaux composants sont les suivants :

Spark Core

Spare Core est le bloc de base, qui comprend tous les composants pour la planification des tâches, l'exécution de diverses opérations de mémoire, la tolérance aux pannes, etc. Il héberge également l'API qui se compose de RDD. De plus, il fournit des API pour créer et manipuler des données dans RDD.

Spark SQL

Apache Spark fonctionne avec les données non structurées à l'aide de son outil « aller à », Spark SQL. Ce dernier permet d'interroger des données via SQL, ainsi que via la forme SQL d'Apache Hive appelée Hive Query Language (HQL). Il prend également en charge les données de diverses sources telles que les tables d'analyse, les fichiers journaux, JSON, etc. Il permet aux programmeurs de combiner des requêtes SQL avec des modifications programmables ou des manipulations prises en charge par RDD en Python, Java, Scala et R.

Spark Streaming

Cet outil traite les flux de données en direct. Des exemples de ces données incluent les fichiers journaux, les messages contenant des mises à jour de statut publiées par les utilisateurs, etc.

GraphX

Spark GraphX est équipé d'une sélection d' distribués pour le traitement des structures de graphes, y compris une implémentation du PageRank de Google. 

Ces algorithmes utilisent l'approche RDD de Spark Core pour modéliser les données. Le package GraphFrames vous permet d'effectuer des opérations graphiques sur des dataframes, notamment en tirant parti de l'optimiseur Catalyst pour 

MLlib

Apache Spark propose une bibliothèque contenant des services communs de Machine Learning (ML) appelés MLlib. Il fournit différents types d'algorithmes de ML, notamment la régression, le clustering et la classification, qui peuvent effectuer diverses opérations sur les données pour en tirer des informations significatives.

Apache Spark  et la des entreprises

De nombreuses entreprises utilisent Apache Spark pour améliorer leur  . Ils recueillent des téraoctets de données auprès des utilisateurs et les exploitent pour perfectionner les services aux consommateurs. 

Voici quelques exemples d'utilisation d'Apache Spark pour une entreprise numérique :

Commerce électronique

De nombreux géants du commerce électronique ont recours à cette application pour accroître leur expérience du consommateur. Son utilisation permet de rendre l'expérience client plus agréable. Il aide également l'entreprise à fournir une interface utilisateur fluide et efficace à ses clients.

Grâce à  Spark, certains des emplois ont la possibilité d'analyser des données volumineuses. Quant aux autres, ils effectuent des extractions sur des données d'images. Ces composants s'affichent sur un grand graphique, et pour obtenir des résultats, il faut utiliser Spark.

Soins de santé

Apache Spark est déployé par de nombreuses entreprises du secteur de la santé afin de fournir de meilleurs services à leurs clients. Ils ont pour but d'aider les consommateurs à adopter un mode de vie plus sain grâce à un régime alimentaire et à des exercices physiques. Grâce à Spark, ils peuvent analyser les données sur les calories alimentaires d'environ 90 millions d'utilisateurs. Ils ont également pu identifier des produits alimentaires de haute qualité.

Médias et divertissement

Certains des sites de streaming vidéo se servent de cette technologie pour montrer des publicités pertinentes à leurs utilisateurs en fonction de leur activité antérieure sur ce site. Ils font appel à Apache Spark pour recommander des émissions à ses utilisateurs sur la base des émissions qu'ils ont regardées précédemment.

Demande accrue de professionnels

Apache Spark fait face à une demande généralisée. Les entreprises ayant de plus en plus de mal à embaucher les bons professionnels pour assumer des rôles difficiles se tournent vers cette solution. Aujourd'hui, la communauté Apache Spark est l'une des communautés Big Data les plus rapides. Elle regroupe plus de 750 contributeurs de plus de 200 entreprises dans le monde.

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 *


The reCAPTCHA verification period has expired. Please reload the page.