Apache Flink vs Spark – L’un prendra-t-il le dessus sur l’autre ?

Dernière mise à jour : 25 Jan 2021

Apache Spark et Apache Flink sont tous deux open-source, cadre de traitement distribué qui a été construit pour réduire les latences de Hadoop Mapreduce dans le traitement rapide des données. On pense souvent à tort qu’Apache Flink va remplacer Spark ou qu’il est possible que ces deux technologies de big data puissent coexister, répondant ainsi à des besoins similaires de traitement rapide et tolérant aux pannes des données. Apache Spark et Flink peuvent sembler similaires à une personne qui n’a pas travaillé avec l’une ou l’autre et qui n’est familière qu’avec Hadoop, et il est évident qu’elle aura l’impression que le développement d’Apache Flink est surtout superflu. Mais Flink a réussi à garder une longueur d’avance grâce à sa fonction de traitement en continu, qui permet de traiter des rangées de données en temps réel, ce qui n’est pas possible avec la méthode de traitement par lots d’Apache Spark. Cela rend Flink plus rapide que Spark.

Selon cette étude d’IBM, nous créons environ 2,5 quintillions d’octets de données chaque jour – et ce taux de génération de données continue d’augmenter à un rythme sans précédent. Pour mettre les choses en perspective, environ 90 % de toutes les données existant dans le monde ont été créées au cours des deux dernières années, même si le World Wide Web est accessible au public depuis plus de deux décennies. La croissance de l’internet s’est accompagnée d’une augmentation du nombre d’utilisateurs et la demande croissante de contenu a ouvert la voie au Web 2.0 au cours de la dernière décennie. C’était la première fois que les utilisateurs étaient autorisés à créer leurs propres données sur Internet et qu’elles étaient prêtes à être consommées par un public avide de données.

Puis ce fut au tour des médias sociaux d’envahir nos vies. Selon le rapport wersm (we are social media), Facebook obtient plus de 4 millions de likes en une minute ! Les données générées par d’autres sources populaires sont mentionnées dans l’infographie (tirée de la même étude wersm) avant de jeter un coup d’œil sur la façon dont ces données sont consommées.

Big Data Facts and Figures Infographic

« Comment stocker ces énormes quantités de données ? » était l’énoncé d’un problème qui a occupé les geeks de la technologie pendant la majeure partie de la décennie précédente. L’essor soudain des médias sociaux ne leur a pas facilité la tâche. Cependant, des solutions de stockage d’un genre nouveau, comme le cloud computing, ont révolutionné le secteur et présenté la meilleure solution possible. Dans la décennie actuelle, l’énoncé du problème s’est déplacé vers « Que faire avec d’énormes masses de données ? ». L’analyse des données a émergé comme le but ultime, mais avant cela, beaucoup de travail doit être fait pour intégrer les données stockées dans différents formats à différentes sources et les préparer pour le traitement et l’analyse, ce qui est une tâche exigeante.

Pour la liste complète des entreprises de big data et leurs salaires- CLIQUEZ ICI

Nos deux sujets d’aujourd’hui – Apache Spark et Apache Flink – tentent de répondre à cette question et plus encore.

Apache Spark vs Flink

Apache Spark

Spark est un framework de calcul en cluster open source qui dispose d’une large base d’utilisateurs mondiaux. Il est écrit en Scala, Java, R et Python et donne aux programmeurs une interface de programmation d’applications (API) construite sur un multi-ensemble d’éléments de données distribués, tolérant aux pannes et en lecture seule. Dans un court laps de temps de 2 ans depuis sa sortie initiale (mai 2014), il a vu une large acceptabilité pour l’analyse avancée en temps réel, en mémoire – en raison de sa vitesse, de sa facilité d’utilisation et de sa capacité à gérer des exigences analytiques sophistiquées.

Formation en ligne à Apache Spark

Si vous souhaitez obtenir plus d’informations sur les carrières dans le domaine du Big Data, veuillez cliquer sur le bouton orange « Demander des informations » en haut de cette page.

Avantages de Spark

Apache Spark présente plusieurs avantages par rapport aux technologies traditionnelles basées sur le Big Data et MapReduce. Les plus importants sont . Il fait essentiellement passer MapReduce au niveau supérieur avec une performance plusieurs fois plus rapide. L’un des principaux différentiateurs de Spark est sa capacité à conserver les résultats intermédiaires en mémoire elle-même, plutôt que de réécrire sur le disque et de le relire, ce qui est essentiel pour les cas d’utilisation basés sur l’itération.

  • Vitesse – Spark peut exécuter des travaux de traitement par lots 10 à 100 fois plus rapidement que MapReduce. Cela ne signifie pas qu’il est à la traîne lorsque les données doivent être écrites sur (et extraites de) le disque, puisqu’il détient le record mondial de tri sur disque à grande échelle.
  • Facilité d’utilisation – Apache Spark dispose d’API faciles à utiliser, construites pour opérer sur de grands ensembles de données.
  • Moteur unifié – Spark peut fonctionner au-dessus d’Hadoop, en utilisant son gestionnaire de cluster (YARN) et le stockage sous-jacent (HDFS, HBase, etc.). Toutefois, il peut également fonctionner indépendamment d’Hadoop, en s’associant à d’autres gestionnaires de clusters et plateformes de stockage (Cassandra et Amazon S3, par exemple). Il est également livré avec des bibliothèques de niveau supérieur qui prennent en charge les requêtes SQL, le streaming de données, l’apprentissage automatique et le traitement des graphes.
  • Choisissez parmi Java, Scala ou Python – Spark ne vous lie pas à un langage particulier et vous permet de choisir parmi les plus populaires tels que Java, Scala, Python, R et même Clojure.
  • Partage de données en mémoire – Différentes tâches peuvent partager des données au sein de la mémoire, ce qui en fait un choix idéal pour les tâches itératives, interactives et de traitement de flux d’événements.
  • Communauté d’utilisateurs active et en expansion – Une communauté d’utilisateurs active a conduit à une version stable de Spark (en juin, 2016) dans les 2 ans suivant sa sortie initiale. Cela en dit long sur son acceptabilité à l’échelle mondiale, qui est en hausse.

Apache Flink

En allemand, cela signifie  » rapide  » ou  » agile « , Apache Flink est le dernier venu dans la liste des frameworks open-source axés sur l’analyse des Big Data qui tentent de remplacer le vieillissant MapReduce d’Hadoop, tout comme Spark. Flink a obtenu sa première version API-stable publiée en mars 2016 et est construit pour le traitement en mémoire de données par lots, tout comme Spark. Ce modèle s’avère très pratique lorsque des passages répétés doivent être effectués sur les mêmes données. Cela en fait un candidat idéal pour l’apprentissage automatique et d’autres cas d’utilisation qui nécessitent un apprentissage adaptatif, des réseaux auto-apprenants, etc. Avec le boom inévitable de l’espace de l’Internet des objets (IoT), la communauté des utilisateurs de Flink a des défis passionnants à relever.

Avantages de Flink

  • Moteur de traitement de flux réel qui peut se rapprocher du traitement par lots, plutôt que d’être l’inverse.
  • Meilleure gestion de la mémoire – La gestion explicite de la mémoire se débarrasse des pics occasionnels trouvés dans le framework Spark.
  • Vitesse – Il gère des vitesses plus rapides en permettant aux traitements itératifs d’avoir lieu sur le même nœud plutôt que d’avoir le cluster les exécuter indépendamment. Ses performances peuvent être encore améliorées en le modifiant pour qu’il ne traite à nouveau que la partie des données qui a changé plutôt que l’ensemble du jeu. Il offre jusqu’à cinq fois plus de vitesse par rapport à l’algorithme de traitement standard.
  • Moins de configuration

Apache Flink vs Spark

Au moment où Flink est apparu, Apache Spark était déjà le cadre de facto pour les besoins d’analyse rapide de big data en mémoire pour un certain nombre d’organisations dans le monde. Flink semblait donc superflu. Après tout, pourquoi aurait-on besoin d’un autre moteur de traitement des données alors que celui qui existait déjà n’avait pas encore fait ses preuves ? Il faut creuser plus profondément dans les capacités de Flink pour observer ce qui le distingue, bien qu’un certain nombre d’analystes l’aient présenté comme la « 4G de l’analyse de données ».

Profondément intégrée dans les paramètres de Spark, il y a une petite faiblesse que Flink a ciblée et sur laquelle il essaie de capitaliser. Bien que cela soit vrai dans le cadre de discussions occasionnelles, Spark n’est pas purement un moteur de traitement de flux. Comme l’a observé Ian Pointer dans l’article d’InfoWorld intitulé « Apache Flink : New Hadoop contender squares off against Spark’, Spark est essentiellement une opération de traitement par lots rapide qui ne travaille que sur une petite partie des données entrantes pendant une unité de temps. Dans sa documentation officielle, Spark parle de « micro-batching ». Il est peu probable que ce problème ait une incidence pratique sur les opérations, sauf si le cas d’utilisation exige une faible latence (systèmes financiers), où un retard de l’ordre de quelques millisecondes peut avoir un impact significatif. Ceci étant dit, Flink est plutôt un travail en cours et ne peut pas encore prétendre remplacer Spark.

Flink est un framework de traitement de flux qui peut exécuter les corvées nécessitant un traitement par lots, vous donnant la possibilité d’utiliser le même algorithme dans les deux modes, sans avoir à vous tourner vers une technologie comme Apache Storm qui nécessite une réponse à faible latence.

Spark et Flink supportent tous deux le traitement en mémoire qui leur donne un avantage distinct de vitesse par rapport aux autres frameworks. Lorsqu’il s’agit de traiter en temps réel des données entrantes, Flink ne tient pas tête à Spark, bien qu’il ait la capacité d’effectuer des tâches de traitement en temps réel.

Spark et Flink peuvent tous deux gérer le traitement itératif, en mémoire. Lorsqu’il s’agit de vitesse, Flink prend le dessus car il peut être programmé pour traiter uniquement les données qui ont changé, et c’est là qu’il se démarque de Spark.

Histoires de croissance – Spark et Flink

Tout cadre logiciel a besoin de plus qu’une expertise technique pour pouvoir aider les entreprises à tirer le maximum de valeur. Dans cette section, nous creusons dans l’article Apache Spark 2015 Year in Review de Databricks pour voir comment il s’est comporté dans la communauté mondiale des utilisateurs et des développeurs. L’année a vu 4 versions (1.3 à 1.6), chacune avec des centaines de corrections pour améliorer le framework. Ce qui a attiré notre attention, c’est la croissance du nombre de développeurs contributeurs – de 500 en 2014 à plus de 1000 en 2015 ! Une autre chose notable à propos de Spark est la facilité avec laquelle ses utilisateurs font la transition vers les nouvelles versions. Le rapport mentionne qu’en trois mois, une majorité d’utilisateurs adoptent la dernière version. Ces faits renforcent sa réputation d’outil de données open source le plus activement développé (et adopté).

Flink est arrivé relativement tard dans la course, mais le bilan de l’année 2015 sur son site officiel montre pourquoi il est là pour rester en tant que frameworks de traitement de flux open source les plus complets disponibles. Le dépôt github de Flink (Get the Repository – Here) montre que la communauté a doublé en taille en 2015 – de 75 contributeurs à 150. Les forks du référentiel ont plus que triplé au cours de l’année, tout comme le nombre de stars du référentiel. Partie de Berlin, en Allemagne, elle a vu sa communauté d’utilisateurs se développer à travers les continents jusqu’en Amérique du Nord et en Asie. La conférence Flink Forward a été une autre étape importante pour Flink, qui a vu la participation de plus de 250 personnes, où plus de 100 participants ont voyagé depuis le monde entier pour assister à des exposés techniques d’organisations telles que Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeus et bien d’autres.

Bien qu’il soit encore tôt pour désigner l’un de ces deux comme un gagnant clair, nous sommes d’avis qu’au lieu d’avoir de nombreux frameworks faisant la même chose, le monde de la tech serait mieux servi en ayant de nouveaux entrants faisant des choses différentes et complétant les existants plutôt que de les concurrencer.

Formation en ligne Apache Spark

PREVIOUS

NEXT

.