L'essentiel d'Apache Spark

Comprendre MapReduce

Testez gratuitement nos 1302 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
L'algorithme historique de traitement du Big Data s'appelle MapReduce. Découvrez en quoi il consiste et initiez-vous à son fonctionnement.
03:46

Transcription

L'algorithme historique pour le traitement distribué, c'est MapReduce, je vous en ai parlé. MapReduce vient d'un papier de Google qui a expliqué comment il faisait des traitements principalement, à l'origine, pour indexer les pages web. Vous imaginez, Google est censé répertorier toutes les pages web du monde, en tout cas, ce qu'il peut récupérer, et ensuite faire un index, ce qu'on appelle un index inversé sur l'intégralité du web, ça veut dire qu'il va falloir traiter ces pages de façon distribuée, il n'y a pas le choix. Le volume est beaucoup trop important. Leur idée, avec MapReduce, c'est de prendre les données et de les distribuer sur GFS, qui s'appelle, dans le monde libre, HDFS, un système de fichiers distribués. Et puis d'envoyer des algorithmes de traitement, sous forme de fonction, à chaque machine, et la fonction s'appelle « Map ». Map permet de prendre des listes, de travailler sur chaque élément d'une liste, par exemple des fichiers, et de retourner, pour chaque élément d'une liste, quelque chose de calculé. Je prends une liste en entrée, je calcule quelque chose sur chaque élément, je récupère en sortie une liste de la même taille avec quelque chose qui a été modifié. Par exemple, j'ai une liste de mots, et j'analyse les fichiers pour savoir si ces mots s'y trouvent et je récupère un résultat, une liste de mots avec des références de documents. Ensuite, une phase de réduction, ici « Reduce », qui récupère toutes les listes différentes, les agrège pour en faire une seule liste réduite, si vous voulez, et on fait un fichier de résultats, donc par exemple, une grosse base de données, ou un gros fichier d'index. Physiquement, les opérations de MapReduce sont faites avec des « fichiers d'input », par exemple, nos fichiers HTML. Il y a une phase de « Map », une phase intermédiaire qui s'appelle « Shuffle and Sort », une phase de « Reduce » et un « fichier d'output ». La phase du milieu, Shuffle and Sort, est importante, parce qu'ici nos fonctions Map s'exécutent sur un certain nombre de nœuds du cluster, les machines, et ensuite il faut bien échanger les données sur le cluster pour arriver au Reduce. La phase de Shuffle and Sort, c'est l'échange de ces données, c'est une phase qui est très coûteuse, parce qu'elle transporte des données à travers le réseau. Ces concepts ne sont pas repris tels quels dans Spark, mais il est important de les connaître pour comprendre finalement d'où vient Spark et comment il va fonctionner, à l'identique ou en se démarquant de ce modèle. À la base, ce modèle, sur l'implémentation libre qui s'appelle « Hadoop », fonctionne sur HDFS, donc le système de fichiers distribués. L'important, c'est qu'un client qui lance une opération sur Hadoop, va lancer un traitement qui va être distribué sur un certain nombre de nœuds de notre cluster, et il est important que sur chaque nœud, il y ait à la fois un gestionnaire de traitement, Hadoop, et puis un gestionnaire de données, pour HDFS, de façon à ce qu'il puisse communiquer et que chaque nœud travaille sur des données locales. C'est ce qu'on appelle la localisation ou colocalisation des données. Sur chaque machine, on va avoir un processus de travail, et puis un processus de gestion des données, et on va avoir un « maître », comme ici, qui va générer le traitement. Le maître va lancer les opérations sur chaque machine de nœuds de traitement et chaque machine aura un traitement local des données. Donc, ce qu'il est important de comprendre, c'est que ça n'a pas de sens, de faire ce type de traitement, si on ne colocalise pas les données. Ça voudrait dire qu'on passe notre vie à échanger à travers un cluster de beaucoup de machines toutes les données à travers le réseau, ce n'est pas gérable. il faut donc colocaliser ces données, et on le fait, à l'aide, soit de HDFS, soit éventuellement d'un moteur de base de données NoSQL, par exemple distribué comme Cassandra, en faisant un système de connections qui permet à Cassandra de servir des données locales sur chaque nœud où il est installé.

L'essentiel d'Apache Spark

Analysez des données volumineuses avec Apache Spark. Chargez vos données pour les analyser, profitez des opérations de transformation et des actions pour agréger vos données, etc.

3h11 (38 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :16 mars 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !