Welcome to Our Website

HPE Développeur Portail Communautaire

message Original information:

"authorDisplayName": "Carol McDonald","publish": "2018-10-17T08:00:00.000Z","tags": "spark"

Dans ce blog, nous allons donner une introduction à Apache Spark et son histoire et découvrir certains des domaines dans lesquels son ensemble de fonctionnalités les plus prometteurs. Nous discuterons de la relation avec d’autres technologies clés et fournirons des conseils utiles.

Avec Spark 2.,0 et versions ultérieures, de grandes améliorations ont été mises en œuvre pour rendre Spark Plus Facile à programmer et à exécuter plus rapidement.

Qu’est-ce Qu’Apache Spark?

Spark est un moteur de traitement de données distribué à usage général qui convient à une utilisation dans un large éventail de circonstances. En plus du moteur de traitement de données Spark core, il existe des bibliothèques pour SQL, l’apprentissage automatique, le calcul de graphes et le traitement de flux, qui peuvent être utilisées ensemble dans une application. Les langages de programmation pris en charge par Spark incluent: Java, Python, Scala et R., Les développeurs d’applications et les data scientists intègrent Spark dans leurs applications pour interroger, analyser et transformer rapidement les données à grande échelle. Les tâches les plus fréquemment associées à Spark comprennent les tâches par lots ETL et SQL sur de grands ensembles de données, le traitement des données en streaming à partir de capteurs, D’IoT ou de systèmes financiers, et les tâches d’apprentissage automatique.

Histoire

afin de comprendre Étincelle, elle aide à comprendre son histoire., Avant Spark, il y avait MapReduce, un framework de traitement distribué résilient, qui permettait à Google d’indexer le volume croissant de contenu sur le web, sur de grands clusters de serveurs de produits.

il y avait 3 concepts de base à la stratégie de Google:

  1. distribuer les données: lorsqu’un fichier de données est téléchargé dans le cluster, il est divisé en morceaux, appelés blocs de données, répartis entre les nœuds de données et répliqués,
  2. calcul de distribution: les utilisateurs spécifient une fonction map qui traite une paire clé/valeur pour générer un ensemble de paires clé / valeur intermédiaires et une fonction reduce qui fusionne toutes les valeurs intermédiaires associées à la même clé intermédiaire. Les programmes écrits dans ce style fonctionnel sont automatiquement parallélisés et exécutés sur un grand groupe de machines de base de la manière suivante:

    • le processus de mappage s’exécute sur chaque nœud de données assigné, ne travaillant que sur son bloc de données à partir d’un fichier distribué.,
    • les résultats des processus de mappage sont envoyés aux réducteurs dans un processus appelé » shuffle and sort »: les paires clé/valeur des mappeurs sont triées par clé, partitionnées par le nombre de réducteurs, puis envoyées à travers le réseau et écrites dans des » fichiers de séquence  » triés par clé sur les nœuds réducteurs.
    • le processus réducteur s’exécute sur son nœud assigné et ne fonctionne que sur son sous-ensemble de données (son fichier de séquence). La sortie du processus réducteur est écrite dans un fichier de sortie.,
  3. tolérer les défauts: les données et le calcul peuvent tolérer les échecs en échouant sur un autre nœud pour les données ou le traitement.

exemple D’exécution du nombre de mots MapReduce:

certains algorithmes itératifs, comme PageRank, utilisé par Google pour classer les sites Web dans les résultats de leurs moteurs de recherche, nécessitent d’enchaîner plusieurs tâches MapReduce, ce qui provoque beaucoup de lecture et d’écriture sur le disque., Lorsque plusieurs tâches MapReduce sont enchaînées, pour chaque tâche MapReduce, les données sont lues à partir d’un bloc de fichiers distribués dans un processus map, écrites et lues à partir d’un fichier SequenceFile entre les deux, puis écrites dans un fichier de sortie à partir d’un processus réducteur.

un an après la publication par Google d’un livre blanc décrivant le framework MapReduce (2004), Doug Cutting et Mike Cafarella ont créé Apache Hadoop™.,

Apache Spark™ a commencé sa vie en 2009 en tant que projet au sein de L’AMPLab de L’Université de Californie à Berkeley. Spark est devenu un projet incubé de L’Apache Software Foundation en 2013, et il a été promu au début de 2014 pour devenir l’un des projets de haut niveau de la Fondation. Spark est actuellement l’un des projets les plus actifs gérés par la Fondation, et la communauté qui s’est développée autour du projet comprend à la fois des contributeurs individuels prolifiques et des bailleurs de fonds d’entreprise bien financés, tels que Databricks, IBM et le chinois Huawei.,

L’Objectif du projet Spark était de conserver les avantages du framework de traitement évolutif, distribué et tolérant aux pannes de MapReduce, tout en le rendant plus efficace et plus facile à utiliser. Les avantages de Spark par rapport à MapReduce sont les suivants:

  • Spark s’exécute beaucoup plus rapidement en mettant en cache les données en mémoire à travers plusieurs opérations parallèles, alors que MapReduce implique plus de lecture et d’écriture à partir du disque.
  • Spark exécute des tâches multithreads à l’intérieur des processus JVM, tandis que MapReduce s’exécute en tant que processus JVM plus lourds., Cela donne à Spark un démarrage plus rapide, un meilleur parallélisme et une meilleure utilisation du processeur.
  • Spark fournit un modèle de programmation fonctionnelle plus riche que MapReduce.
  • Spark est particulièrement utile pour le traitement parallèle de données distribuées avec des algorithmes itératifs.

comment une Application Spark S’exécute sur un Cluster

le diagramme ci-dessous montre une application Spark s’exécutant sur un cluster.,

  • une application Spark s’exécute en tant que processus indépendants, coordonnés par L’objet SparkSession dans le programme pilote.
  • le gestionnaire de ressources ou de cluster attribue des tâches aux travailleurs, une tâche par partition.
  • une tâche applique son unité de travail au jeu de données de sa partition et génère un nouveau jeu de données de partition. Étant donné que les algorithmes itératifs appliquent des opérations à plusieurs reprises aux données, ils bénéficient de la mise en cache des ensembles de données entre les itérations.,
  • les résultats sont renvoyés à l’application pilote ou peuvent être enregistrés sur le disque.,anager inclus avec Spark
  • Apache Mesos – un gestionnaire de cluster général qui peut également exécuter des applications Hadoop
  • Apache Hadoop YARN – le gestionnaire de ressources dans Hadoop 2
  • Kubernetes – un système open source pour l’automatisation du déploiement, mise à L’échelle et gestion des applications conteneurisées

Spark dispose également D’un mode local, où le pilote et les exécuteurs s’exécutent en tant que threads sur votre ordinateur au lieu D’un cluster, ce qui est utile pour développer vos applications à partir D’un ordinateur personnel.,

Que fait Spark?

Spark est capable de gérer plusieurs pétaoctets de données à la fois, répartis sur un cluster de milliers de serveurs physiques ou virtuels coopérants. Il dispose d’un vaste ensemble de bibliothèques de développeurs et D’API et prend en charge des langages tels que Java, Python, R et Scala; sa flexibilité le rend bien adapté à une gamme de cas d’utilisation., Spark est souvent utilisé avec des magasins de données distribués tels que HPE Ezmeral Data Fabric, Hadoop HDFS et Amazon S3, avec des bases de données NoSQL populaires telles que HPE Ezmeral Data Fabric, Apache HBase, Apache Cassandra et MongoDB, et avec des magasins de messagerie distribués tels que HPE Ezmeral Data Fabric et Apache Kafka.

les cas D’utilisation typiques incluent:

traitement des flux: des fichiers journaux aux données des capteurs, les développeurs d’applications doivent de plus en plus faire face à des « flux » de données., Ces données arrivent dans un flux régulier, souvent à partir de plusieurs sources simultanément. Bien qu’il soit certainement possible de stocker ces flux de données sur le disque et de les analyser rétrospectivement, il peut parfois être judicieux ou important de traiter et d’agir sur les données lorsqu’elles arrivent. Les flux de données liés aux transactions financières, par exemple, peuvent être traités en temps réel pour identifier– et refuser– les transactions potentiellement frauduleuses.

apprentissage automatique: à mesure que les volumes de données augmentent, les approches d’apprentissage automatique deviennent plus réalisables et de plus en plus précises., Les logiciels peuvent être formés pour identifier et agir sur les déclencheurs dans des ensembles de données bien compris avant d’appliquer les mêmes solutions aux données nouvelles et inconnues. La capacité de Spark à stocker des données en mémoire et à exécuter rapidement des requêtes répétées en fait un bon choix pour la formation d’algorithmes d’apprentissage automatique. L’exécution de requêtes largement similaires encore et encore, à grande échelle, réduit considérablement le temps nécessaire pour passer par un ensemble de solutions possibles afin de trouver les algorithmes les plus efficaces.,

analyse Interactive: plutôt que d’exécuter des requêtes prédéfinies pour créer des tableaux de bord statiques de la productivité des ventes ou des lignes de production ou des cours des actions, les analystes commerciaux et les data scientists souhaitent explorer leurs données en posant une question, en visualisant le résultat, puis en modifiant légèrement la question initiale Ce processus de requête interactif nécessite des systèmes tels que Spark capables de répondre et de s’adapter rapidement.,

intégration des données: les données produites par différents systèmes au sein d’une entreprise sont rarement suffisamment propres ou cohérentes pour être combinées simplement et facilement à des fins de reporting ou d’analyse. Les processus d’extraction, de transformation et de chargement (ETL) sont souvent utilisés pour extraire des données de différents systèmes, les nettoyer et les normaliser, puis les charger dans un système distinct pour analyse. Spark (et Hadoop) sont de plus en plus utilisés pour réduire les coûts et le temps requis pour ce processus ETL.

Qui Utilise Étincelle?,

un large éventail de fournisseurs de technologies ont rapidement pris en charge Spark, reconnaissant la possibilité d’étendre leurs produits big data existants dans des domaines où Spark offre une réelle valeur, tels que l’interrogation interactive et l’apprentissage automatique. Des entreprises bien connues telles QU’IBM et Huawei ont investi des sommes importantes dans la technologie, et un nombre croissant de startups créent des entreprises qui dépendent en tout ou en partie de Spark., Par exemple, en 2013, L’équipe de Berkeley responsable de la création de Spark a fondé Databricks, qui fournit une plate-forme de données de bout en bout hébergée alimentée par Spark. La société est bien financée, ayant reçu 247 millions de dollars sur quatre cycles d’investissement en 2013, 2014, 2016 et 2017, et les employés de Databricks continuent de jouer un rôle de premier plan dans l’amélioration et l’extension du code open source du projet Apache Spark.,

les principaux fournisseurs Hadoop, y compris MapR, Cloudera et Hortonworks, ont tous déménagé pour prendre en charge Spark basé sur YARN aux côtés de leurs produits existants, et chaque fournisseur travaille à ajouter de la valeur pour ses clients. Ailleurs, IBM, Huawei et d’autres ont tous fait des investissements importants dans Apache Spark, l’intégrant dans leurs propres produits et apportant des améliorations et des extensions au projet Apache., Les entreprises basées sur le Web, comme le moteur de recherche chinois Baidu, L’opération de commerce électronique Taobao et la société de réseaux sociaux Tencent, exécutent toutes des opérations basées sur Spark à grande échelle, les 800 millions d’utilisateurs actifs de Tencent générant plus de 700 To de données par jour pour traitement sur un cluster de plus de 8 000 nœuds

en plus de ces géants du web, la société pharmaceutique Novartis dépend de Spark pour réduire le temps nécessaire pour mettre les données de modélisation entre les mains des chercheurs, tout en garantissant le maintien de garanties éthiques et contractuelles.,

Qu’est-ce qui distingue Spark?

il existe de nombreuses raisons de choisir Spark, mais les trois suivantes sont essentielles:

simplicité: les capacités de Spark sont accessibles via un ensemble d’API riches, toutes conçues spécifiquement pour interagir rapidement et facilement avec les données à grande échelle. Ces API sont bien documentées et structurées de manière à permettre aux data scientists et aux développeurs d’applications de mettre rapidement Spark au travail.

vitesse: Spark est conçu pour la vitesse, fonctionnant à la fois en mémoire et sur disque., En utilisant Spark, une équipe de Databricks a égalé la première place avec une équipe de L’Université de Californie à San Diego au Daytona GraySort benchmarking challenge 2014 (https://spark.apache.org/news/spark-wins-daytona-gray-sort-100tb-benchmark.html). Le défi consiste à traiter un ensemble de données statiques; L’équipe Databricks a pu traiter 100 téraoctets de données stockées sur des disques SSD en seulement 23 minutes, et le précédent gagnant a pris 72 minutes en utilisant Hadoop et une configuration de cluster différente. Spark peut encore mieux fonctionner lors de la prise en charge de requêtes interactives de données stockées en mémoire., Dans ces situations, il y a des affirmations selon lesquelles Spark peut être 100 fois plus rapide que MapReduce de Hadoop.

Support: Spark prend en charge une gamme de langages de programmation, y compris Java, Python, R et Scala. Spark prend en charge une intégration étroite avec un certain nombre de solutions de stockage de pointe dans L’écosystème Hadoop et au-delà, notamment HPE Ezmeral Data Fabric (système de fichiers, base de données et magasin d’événements), Apache Hadoop (HDFS), Apache HBase et Apache Cassandra. De plus, la communauté Apache Spark est vaste, active et internationale., Un ensemble croissant de fournisseurs commerciaux, y compris Databricks, IBM et tous les principaux fournisseurs Hadoop, offrent un support complet pour les solutions basées sur Spark.

la puissance des Pipelines de données

une grande partie de la puissance de Spark réside dans sa capacité à combiner des techniques et des processus très différents en un seul ensemble cohérent. En dehors de Spark, les tâches discrètes de sélection des données, de transformation de ces données de différentes manières et d’analyse des résultats transformés peuvent facilement nécessiter une série de frameworks de traitement distincts, tels Qu’Apache Oozie., Spark, d’autre part, offre la possibilité de les combiner ensemble, en franchissant les frontières entre les flux de travail par lots, en streaming et interactifs de manière à rendre l’utilisateur plus productif.

les tâches Spark effectuent plusieurs opérations consécutives, en mémoire, et ne se déversent sur le disque que lorsque les limitations de mémoire l’exigent. Spark simplifie la gestion de ces processus disparates, offrant un ensemble intégré – un pipeline de données plus facile à configurer, à exécuter et à maintenir., Dans des cas d’utilisation tels que L’ETL, ces pipelines peuvent devenir extrêmement riches et complexes, combinant un grand nombre d’entrées et un large éventail d’étapes de traitement dans un ensemble unifié qui fournit systématiquement le résultat souhaité.

Laisser un commentaire

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