Traitement des Big Data : à chacun sa solution

Dans le domaine des Big Data, l’offre des solutions de traitement des données volumineuses s’est beaucoup élargie au fil des années. Aujourd’hui, de nombreux outils technologiques permettent d’appréhender ces problématiques, chacun s’orientant sur des cas d’utilisation particuliers. En voici trois exemples parmi d’autres.

 

Hadoop pour les calculs en tâche de fond

hadoop-elephant_logo

Son histoire. Hadoop est une des premières implémentations du modèle d’exécution MapReduce à voir le jour. La première version du framework a été implémentée par Yahoo! en 2005. La société américaine avait alors besoin d’exécuter des traitements sur des données importantes. Hadoop est apparu comme un moteur d’exécution permettant de lancer des traitements parallélisés sur les données. Par la suite, le framework Open Source a rejoint la fondation Apache.

Son point fort. Hadoop est très adapté à l’exécution de batchs sur le modèle MapReduce. Il est conçu pour traiter des volumes de données très importants, nécessitant la coordination d’un grand nombre de machines. La durée d’exécution et la latence des opérations dans Hadoop le destinent plutôt à des calculs en tâche de fond (agrégation de données, calcul de statistiques, …) et non à des opérations en « quasi » temps réel.

Notons que la version 2 (sortie en 2013) étend les possibilités du framework au-delà du modèle d’exécution MapReduce.

 

Spark pour des temps d’exécution rapides

spark_2

Son histoire. Développée à l’origine comme un projet de recherche universitaire, la première version de Spark, réalisée en 2009, avait pour objectif de pallier certains problèmes rencontrés avec Hadoop. Suite à l’intérêt pour cette nouvelle implémentation, le code a été ouvert en Open Source en 2010. Depuis, le projet a rejoint la fondation Apache, ce qui a permis d’agrandir la communauté autour de l’outil.

Son point fort. Spark a été conçu en partant du constat qu’un nombre important de projets Big Data se basent sur des données de taille assez réduite (quelques dizaines de Go). L’infrastructure complexe mise en place pour Hadoop n’est donc pas toujours adaptée. Spark va ainsi privilégier l’utilisation de la mémoire des machines plutôt que leurs disques, et permettre des temps d’exécution beaucoup plus rapides. Le framework se veut généraliste et rend possible l’exécution de différents types de traitements sur le cluster. À cela s’ajoute un ensemble de modules complémentaires pour les besoins plus spécifiques (gestion de flux de données, algorithmes de Machine Learning, graphes, …).

 

Storm pour les données en temps reel

 

storm_logo_winner

 

Son histoire. La première version de Storm a été développée en 2011 par des salariés de la société BackType, qui travaillaient alors à des solutions de calculs statistiques sur des données en temps réel. Le framework a été ouvert en Open Source quelque temps après.

Son point fort. Storm se veut la réplique du modèle de traitement en batch d’Hadoop pour les données en temps réel. Le framework permet de définir des « streams » depuis des points d’entrée (connexion d’un utilisateur, réception de sa position, …) vers des points de sortie (base de données, fichier, …), en ajoutant différents types d’opération à effectuer sur les données durant leur parcours dans les flux de Storm. L’intérêt principal de Storm est de permettre cette gestion en temps réel des données (considérées comme des événements), à la différence d’Hadoop et de Spark qui conçoivent l’exécution des traitements comme des batchs individuels.

 

Au travers de ces trois exemples, nous pouvons en conclure qu’il n’existe pas réellement de solution commune à tous les projets Big Data. Le choix devra plutôt se faire en fonction des cas d’utilisation des projets dans l’entreprise.

 

Laisser un commentaire

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