Apache Spark vs Hadoop Mapreduce - Ce que vous devez savoir
Publié: 2019-09-05Le Big Data est comme le Big Brother omniprésent dans le monde moderne. Les cas d'utilisation sans cesse croissants du Big Data dans divers secteurs ont en outre donné naissance à de nombreuses technologies Big Data, parmi lesquelles Hadoop MapReduce et Apache Spark sont les plus populaires. Bien que MapReduce et Spark soient tous deux des projets phares open source développés par Apache Software Foundation, ils sont également les plus puissants concurrents l'un de l'autre.
Dans cet article, nous parlerons d'abord des frameworks MapReduce et Spark, puis nous passerons à la discussion des principales différences entre eux.
Que sont Spark et MapReduce ?
Spark est un framework Big Data spécialement conçu pour permettre un calcul rapide. Il sert de moteur de traitement de données à usage général qui peut gérer différentes charges de travail, notamment par lots, interactives, itératives et en continu. Une caractéristique clé de Spark est la vitesse - il exécute des calculs en mémoire pour augmenter la vitesse de traitement des données. En conséquence, il fonctionne bien sur un cluster de nœuds informatiques et permet un traitement plus rapide de grands ensembles de données.
Resilient Distributed Dataset (RDD) est la structure de données principale de Spark. RDD est une collection immuable distribuée d'objets dans laquelle chaque nœud est divisé en plus petits morceaux qui peuvent être calculés sur différents nœuds d'un cluster. Cela facilite le traitement indépendant des données au sein d'un cluster.
MapReduce est un framework open-source conçu pour traiter de grandes quantités de données dans un environnement parallèle et distribué. Il ne peut traiter les données qu'en mode batch. Il existe deux composants principaux de Hadoop MapReduce : HDFS et YARN.

La programmation MapReduce se compose de deux parties - Mapper et le Reducer. Alors que le Mapper gère la tâche de tri des données, le Reducer combine les données triées et les convertit en fragments plus petits.
Quant à la différence fondamentale entre ces deux frameworks, c'est leur approche innée du traitement des données. Alors que MapReduce traite les données en lisant et en écrivant sur le disque, Spark peut le faire en mémoire. Ainsi, Spark obtient un avantage sur MapReduce - de traitement rapide.
Mais cela signifie-t-il que Spark est meilleur que MapReduce ? Malheureusement, le débat n'est pas si simple. Pour éclairer davantage cette question, nous décomposerons les différences entre eux point par point.
Traitement de l'information
Spark : Comme nous l'avons mentionné précédemment, Spark est davantage un framework de traitement hybride et à usage général. Grâce au calcul en mémoire et à l'optimisation du traitement, il accélère le traitement des données en temps réel. Il est excellent pour diffuser des charges de travail, exécuter des requêtes interactives et des algorithmes ML. Cependant, le RDD permet uniquement à Spark de stocker temporairement des données sur le disque en écrivant uniquement les données vitales sur le disque. Ainsi, il charge un processus en mémoire et le conserve dans le cache. Cela rend Spark gourmand en mémoire.
MapReduce : MapReduce est le moteur de traitement par lots natif de Hadoop. Ses composants (HDFS et YARN) permettent un traitement plus fluide des données par lots. Cependant, étant donné que le traitement des données se déroule en plusieurs étapes successives, le processus est assez lent. Un avantage de MapReduce est qu'il permet un stockage permanent - il stocke les données sur disque. Cela le rend approprié pour gérer des ensembles de données volumineux. Dès qu'une tâche est terminée, MapReduce tue ses processus et peut donc s'exécuter simultanément avec d'autres services.
Facilité d'utilisation
Spark : En matière de facilité d'utilisation, Spark prend la couronne. Il est livré avec de nombreuses API conviviales pour Scala (langage natif), Java, Python et Spark SQL. Étant donné que Spark permet le streaming, le traitement par lots et l'apprentissage automatique dans le même cluster, vous pouvez facilement simplifier l'infrastructure de traitement des données en fonction de vos besoins. De plus, Spark inclut un mode interactif REPL (Read-eval-print loop) pour exécuter des commandes qui offre un retour rapide aux utilisateurs.
MapReduce : Étant donné que Hadoop MapReduce est écrit en Java, il faut du temps pour apprendre la syntaxe. Par conséquent, au début, beaucoup peuvent trouver cela assez difficile à programmer. Bien que MapReduce ne dispose pas d'un mode interactif, des outils comme Pig et Hive facilitent un peu son utilisation. Il existe également d'autres outils (par exemple, Xplenty) qui peuvent exécuter des tâches MapReduce sans nécessiter de programmation.

Tolérance aux pannes
Spark : Spark utilise RDD et différents modèles de stockage de données pour la tolérance aux pannes en réduisant les E/S réseau. S'il y a une perte de partition d'un RDD, le RDD reconstruira cette partition à partir des informations stockées en mémoire. Ainsi, si un processus plante à mi-chemin, Spark devra recommencer le traitement depuis le tout début.
MapReduce : Contrairement à Spark, MapReduce utilise le concept de réplication pour la tolérance aux pannes via Node Manager et ResourceManager. Ici, si un processus ne parvient pas à s'exécuter à mi-chemin, MapReduce continuera là où il s'est arrêté, ce qui permet de gagner du temps.
Sécurité
Spark : Comme Spark n'en est qu'à ses balbutiements, son facteur de sécurité n'est pas très développé. Il prend en charge l'authentification via une feuille de secret partagé (authentification par mot de passe). Quant à l'interface utilisateur Web, elle peut être protégée par des filtres de servlet javax. Les fonctionnalités YARN et HDFS de Spark permettent l'authentification Kerberos, les autorisations au niveau des fichiers HDFS et le chiffrement entre les nœuds.
MapReduce : MapReduce est beaucoup plus développé et possède donc de meilleures fonctionnalités de sécurité que Spark. Il bénéficie de tous les avantages de sécurité de Hadoop et peut être intégré aux projets de sécurité Hadoop, notamment Knox Gateway et Sentry. Grâce à des fournisseurs tiers valides, les organisations peuvent même utiliser Active Directory Kerberos et LDAP pour l'authentification.
Coût
Bien que Spark et MapReduce soient des projets open source, vous devez engager certains coûts pour les deux. Par exemple, Spark nécessitait de grandes quantités de RAM pour exécuter des tâches en mémoire, et au fur et à mesure, la RAM est plus coûteuse que les disques durs. Au contraire, Hadoop est orienté disque - bien que vous n'ayez pas besoin d'acheter de la RAM coûteuse, vous devrez investir davantage dans des systèmes pour répartir les E/S du disque sur plusieurs systèmes.
Donc, en ce qui concerne le coût, cela dépend en grande partie des exigences de l'organisation. Si une organisation a besoin de traiter des quantités massives de données volumineuses, Hadoop sera l'option la plus rentable, car l'achat d'espace disque dur est bien moins cher que l'achat d'un espace mémoire expansif. De plus, MapReduce est livré avec une multitude d'offres Hadoop en tant que service et de services basés sur Hadoop qui vous permettent d'ignorer les exigences en matière de matériel et de personnel. Par rapport à cela, il n'y a qu'une poignée de choix Spark-as-a-service.

Compatibilité
En ce qui concerne la compatibilité, Spark et MapReduce sont compatibles l'un avec l'autre. Spark peut être intégré de manière transparente à toutes les sources de données et tous les formats de fichiers pris en charge par Hadoop. De plus, les deux sont évolutifs. Ainsi, la compatibilité de Spark avec les types de données et les sources de données est à peu près la même que celle de Hadoop MapReduce.
Comme vous pouvez le voir, Spark et MapReduce ont des fonctionnalités uniques qui les distinguent les uns des autres. Par exemple, Spark propose des analyses en temps réel qui manquent à MapReduce, tandis que MapReduce est livré avec un système de fichiers qui manque à Spark. Les deux cadres sont excellents à leur manière distincte, et les deux viennent avec leur ensemble unique d'avantages et d'inconvénients. En fin de compte, le débat entre Spark et MapReduce se résume à vos besoins commerciaux spécifiques et au type de tâches que vous souhaitez accomplir.
Si vous souhaitez en savoir plus sur le Big Data, consultez notre programme PG Diploma in Software Development Specialization in Big Data qui est conçu pour les professionnels en activité et fournit plus de 7 études de cas et projets, couvre 14 langages et outils de programmation, pratique pratique ateliers, plus de 400 heures d'apprentissage rigoureux et d'aide au placement dans les meilleures entreprises.
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
