L'essentiel d'Apache Spark

Définir les couches du traitement distribué

Testez gratuitement nos 1300 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous apprendrez qu'on peut définir quatre couches de traitement distribué. Ces couches sont constituées des données, du cluster, du programme de traitement et des opérations de requête.
05:06

Transcription

D'un point du vue très global, voyons comment s'architecture un système distribué comme Spark. Nous l'avons dit, on a besoin de données distribuées à travers un Cluster de Machines, ça, c'est dit. On a donc besoin d'un gestionnaire de clusters, d'un système qui va permettre distribuer le traitement sur ces données distribuées, qui va permettre de gérer que tous les nœuds s'exécutent correctement, de pouvoir relancer un traitement si un des nœuds a disparu, s'il n'a pas répondu dans les temps par exemple, c'est donc une partie importante de la gestion du traitement distribué. Il nous faut bien entendu un programme de traitement, il nous faut des algorithmes, il nous faut quelque chose à faire pour envoyer un traitement particulier à notre gestionnaire de clusters. Et puis, il nous faut une couche d'interrogation, une surcouche qui va nous permettre par exemple de saisir du code SQL, qui va ensuite être traduit en un programme de traitement qui va être envoyé au gestionnaire de clusters, qui va toucher aux données distribuées et ensuite, on revient en arrière, le programme de traitement renvoie les informations de résultat à la couche d'interrogation. Si je prends brièvement point par point, les données distribuées, comment s'est-elle stockée ? Eh bien, autant que possible, ces données ditribuées sont stockées d'abord dans un système de fichiers distribués OK d'accord, HDFS par exemple, mais, dans un format ouvert. Le big data, c'est de l'analyse. On va stocker des volumes importants de données pour l'avenir, on ne va pas les stocker dans un format qui n'est pas pérenne. Et puis finalement, on va les stocker dans un format qui n'est pas très bien structuré parce que ce qu'on veut, c'est conserver toutes les données un peu dans l'état où on les a collectées, pour ensuite inventer, découvrir, bâtir des traitements différents sur ces données. On ne va pas les pré-structurer pour un type de traitement, parce que on ne sait pas encore à l'avance comment on va traiter ces données. On a donc un certain nombre de formats qui viennent du monde Hadoop, comme les sequenceFiles, ce sont des gros fichiers de paires « clef-valeur ». On a des formats qui ont été créés avec le temps comme par exemple un format qui s'appelle Avro, dont on reparlera. Un format qui est une structure de fichier pour analyser les données plus rapidement, qui s'appelle Parquet, et qui vient d'un document de Google encore une fois. Et on a d'autres formats comme ORC, etc. Qui sont nés dans le monde du traitement du big data lié à Hadoop. Mais dans Spark, on va principalement utiliser soit des fichiers texte, soit des sequenceFiles, soit du Parquet. On peut aussi utiliser de l'Avro, ou du Protocol Buffers qui ressemble un peu à Avro, je vous en toucherais un mot, mais juste pour le raisonnement, HDFS est un système de fichiers distribués qui a une taille de bloc assez importante. A la base 64 Mo. Le bloc d'un système de fichiers, ça veut dire quand vous stockez un fichier dans un système de fichiers, vous devez stocker un fichier dans un bloc, et le bloc ne contient qu'un fichier. Ça veut dire que 64 Mo, si vous stockez des petits fichiers de quelques Ko, chaque fois HDFS va devoir libérer 64 Mo pour stocker votre fichier. C'est pour ça qu'il est impraticable de garder les données, par exemple des données de logs, sous forme de petits fichiers. On les regroupe dans par exemple des sequenceFiles qui sont faits pour ça, qui sont des fichiers séquentiels dans lesquels Hadoop sait se balader, de façon à avoir des gros fichiers à disposition et à mieux utiliser les blocs d'HDFS. Ça, c'était une petit note au passage. On peut aussi penser à stocker ces données dans des bases de données NoSQL qui sont totalement distribuées et qui se connectent très bien à Spark ou à Hadoop comme Hbase et Cassandra. Deuxième étape, le gestionnaire de clusters. Il y en a deux importants, on a un gestionnaire de clusters qui s'appelle Hadoop YARN maintenant, YARN ça veut dire Yet Another Resource Negotiator, ce qui veut dire que à un moment donné de la vie de Hadoop, les développeurs d'Hadoop ont séparé la partie MapReduce de la partie gestionnaire de clusters, et le gestionnaire de clusters s'appelle YARN maintenant, il permet de lancer du traitement sur un Cluster de Machines. Donc, c'est une évolution du scheduler de Hadoop MapReduce. On pourrait dire c'est Hadoop 2.0. Et il est relativement monolithique on dit, parce qu'il décide de placer un traitement sur une ressource sans demander à la couche du programme de traitement. Ça, c'est une petite chose en interne à savoir, et c'est la différence avec Apache Mesos. Mesos est un gestionnaire de clusters plus récent, qui a été développé aussi dans une université Américaine, à UC Berkley l'Université de Californie à Berkley à partir de 2007, et c'est un gestionnaire de clusters qui peut faire des propositions au Framework pour du placement, donc qui peut être plus interactif avec le Framework. On peut dire que Apache Mesos a des qualités par rapport à YARN. YARN en a certaines par rapport à Mesos mais ici, pour notre travail avec Spark, on n'a pas énormément de différences à considérer. Sachez simplement que ce sont deux gestionnaires de clusters possibles pour Spark, à part le gestionnaire de Cluster interne de Spark dont nous reparleront.

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 !