Cinq choses à savoir sur Hadoop contre Apache Spark

Écoutez toute conversation sur le Big Data, et vous entendrez probablement parler de Hadoop ou d'Apache Spark. Voici un bref aperçu de ce qu'ils font et de leur comparaison.

1: Ils font des choses différentes. Hadoop et Apache Spark sont tous deux des frameworks Big Data, mais ils ne servent pas vraiment les mêmes objectifs. Hadoop est essentiellement une infrastructure de données distribuée: il distribue des collections de données massives sur plusieurs nœuds au sein d'un cluster de serveurs de base, ce qui signifie que vous n'avez pas besoin d'acheter et de maintenir du matériel personnalisé coûteux. Il indexe et conserve également la trace de ces données, ce qui permet le traitement et l'analyse de données volumineuses beaucoup plus efficacement qu'auparavant. Spark, en revanche, est un outil informatique qui fonctionne sur ces collections de données distribuées; il ne fait pas de stockage distribué.

2: Vous pouvez utiliser l'un sans l'autre. Hadoop comprend non seulement un composant de stockage, connu sous le nom de système de fichiers distribués Hadoop, mais également un composant de traitement appelé MapReduce, vous n'avez donc pas besoin de Spark pour effectuer votre traitement. Inversement, vous pouvez également utiliser Spark sans Hadoop. Cependant, Spark n'est pas livré avec son propre système de gestion de fichiers, il doit donc être intégré à un - sinon HDFS, puis une autre plate-forme de données basée sur le cloud. Spark a été conçu pour Hadoop, cependant, beaucoup conviennent qu'ils sont meilleurs ensemble.

3: Spark est plus rapide.Spark est généralement beaucoup plus rapide que MapReduce en raison de la façon dont il traite les données. Alors que MapReduce fonctionne par étapes, Spark opère sur l'ensemble des données d'un seul coup. "Le flux de travail MapReduce ressemble à ceci: lire les données du cluster, effectuer une opération, écrire les résultats dans le cluster, lire les données mises à jour du cluster, effectuer l'opération suivante, écrire les résultats suivants dans le cluster, etc.", a expliqué Kirk Borne, scientifique principal des données chez Booz Allen Hamilton. Spark, d'autre part, complète les opérations d'analyse de données complètes en mémoire et en temps quasi réel: "Lisez les données du cluster, effectuez toutes les opérations analytiques requises, écrivez les résultats dans le cluster, c'est fait", a déclaré Borne. Spark peut être jusqu'à 10 fois plus rapide que MapReduce pour le traitement par lots et jusqu'à 100 fois plus rapide pour les analyses en mémoire, a-t-il déclaré.

4: Vous n'aurez peut-être pas besoin de la vitesse de Spark. Le style de traitement de MapReduce peut être parfait si vos opérations de données et vos exigences en matière de rapports sont pour la plupart statiques et que vous pouvez attendre le traitement en mode batch. Mais si vous avez besoin d'analyser des données en streaming, comme à partir de capteurs dans un atelier, ou si vous avez des applications qui nécessitent plusieurs opérations, vous voudrez probablement utiliser Spark. La plupart des algorithmes d'apprentissage automatique, par exemple, nécessitent plusieurs opérations. Les applications courantes de Spark incluent des campagnes de marketing en temps réel, des recommandations de produits en ligne, des analyses de cybersécurité et la surveillance des journaux de la machine.

5: Récupération après échec: différent, mais toujours bon. Hadoop est naturellement résilient aux pannes ou aux pannes du système puisque les données sont écrites sur le disque après chaque opération, mais Spark a une résilience intégrée similaire en raison du fait que ses objets de données sont stockés dans ce que l'on appelle des ensembles de données distribués résilients répartis sur le cluster de données. «Ces objets de données peuvent être stockés en mémoire ou sur des disques, et RDD permet une récupération complète des pannes ou des pannes», a souligné Borne.