Programmation parallèle et distribuée (Master 1 Info 2015-2016)



Documents pareils
Hadoop / Big Data MBDS. Benjamin Renaut <renaut.benjamin@tokidev.fr>

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Programmation parallèle et distribuée

Programmation parallèle et distribuée

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Introduction à MapReduce/Hadoop et Spark

Introduction à Hadoop & MapReduce

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Ricco Rakotomalala R.R. Université Lyon 2

Big Data. Les problématiques liées au stockage des données et aux capacités de calcul

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

MapReduce et Hadoop. Alexandre Denis Inria Bordeaux Sud-Ouest France ENSEIRB PG306

Certificat Big Data - Master MAthématiques

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

Introduc)on à Map- Reduce. Vincent Leroy

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Big Data Concepts et mise en oeuvre de Hadoop

Tables Rondes Le «Big Data»

HADOOP ET SON ÉCOSYSTÈME

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

L écosystème Hadoop Nicolas Thiébaud Tuesday, July 2, 13

Labs Hadoop Février 2013

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Panorama des solutions analytiques existantes

20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Introduction Big Data

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

Document réalisé par Khadidjatou BAMBA

Fouille de données massives avec Hadoop

R+Hadoop = Rhadoop* Des logiciels libres complémentaires, une implémentation, une réponse au nouveau paradigme du bigdata!

Livre. blanc. Solution Hadoop d entreprise d EMC. Stockage NAS scale-out Isilon et Greenplum HD. Février 2012

Cartographie des solutions BigData

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

BIG DATA en Sciences et Industries de l Environnement

Big Data, un nouveau paradigme et de nouveaux challenges


Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Big Data : utilisation d un cluster Hadoop HDFS Map/Reduce HBase

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

Proposition d une architecture pour ebay, en mettant l accent sur les notions de scalabilité, de résilience, et de tolérance aux pannes.

Les bases de données relationnelles

Hadoop : une plate-forme d exécution de programmes Map-Reduce

Hadoop : une plate-forme d exécution de programmes Map-Reduce

Les quatre piliers d une solution de gestion des Big Data

Fast and furious decision tree induction

Le BigData, aussi par et pour les PMEs

Le BIG DATA????? Big Buzz? Big Bang? Big Opportunity? Big hype? Big Business? Big Challenge? Big Hacking? Gérard Peliks planche 2

Introduction aux algorithmes MapReduce. Mathieu Dumoulin (GRAAL), 14 Février 2014

Département Informatique 5 e année Hadoop: Optimisation et Ordonnancement

Hadoop dans l entreprise: du concept à la réalité. Pourquoi et comment?

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC RAPPORT DE PROJET PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

Notes de cours Practical BigData

BIG Data et R: opportunités et perspectives

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

WD et le logo WD sont des marques déposées de Western Digital Technologies, Inc, aux États-Unis et dans d'autres pays ; absolutely WD Re, WD Se, WD

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Professeur-superviseur Alain April

Anticiper et prédire les sinistres avec une approche Big Data

FORUM NTIC BIG DATA, OPEN DATA Big Data: les challenges, les défis

ACCOMPAGNER L EXPLOSION DES VOLUMES DE DONNEES : LES NOUVEAUX ENJEUX DU STOCKAGE

BlobSeerFS : un système de fichiers pour le calcul hautes performances sous Hadoop MapReduce

BI dans les nuages. Olivier Bendavid, UM2 Prof. A. April, ÉTS

Mesures DNS à l ère du Big Data : outils et défis. JCSA, 9 juillet 2015 Vincent Levigneron, Afnic

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Projet d'infrastructure de stockage mutualisée

Change the game with smart innovation

Cours 8 Not Only SQL

Bases de données documentaires et distribuées Cours NFE04

Les journées SQL Server 2013

Les technologies du Big Data

Big Graph Data Forum Teratec 2013

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Offre formation Big Data Analytics

Les enjeux du Big Data Innovation et opportunités de l'internet industriel. Datasio 2013

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

DÉPLOIEMENT DE QLIKVIEW POUR DES ANALYSES BIG DATA CHEZ KING.COM

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Chapitre 10 Mettre en œuvre un cluster Hadoop

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Comment la gestion de l identité numérique peutelle résoudre les cinq failles de sécurité d Hadoop?

«clustering» et «load balancing» avec Zope et ZEO

Big Data. SRS Day Ali FAWAZ Etienne CAPGRAS. Membres du groupe : Coaché par :

LE BIG DATA. TRANSFORME LE BUSINESS Solution EMC Big Data

Analytics & Big Data. Focus techniques & nouvelles perspectives pour les actuaires. Université d Eté de l Institut des Actuaires Mardi 8 juillet 2014

Titre : La BI vue par l intégrateur Orange

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

À PROPOS DE TALEND...

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Transcription:

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS)

Introduction Des problématiques en calculs distribués... Accès et partage de ressources Extensibilité, Hétérogénéité, Tolérance aux pannes, Transparence, etc. Plusieurs approches, paradigmes, technologies Supercalculateur, grille, calcul volontaire, etc Clouds et Big Data Disposer d'un framework facile à déployer et qui permette l'exécution de tâches parallélisables et le support et le suivi de ces tâches de manière rapide et simple à mettre en œuvre

Apache Hadoop Open Source : composants complètement ouverts Modèle simple pour les développeurs tâches Map/Reduce interfaces simples librairies dans des langages multiples Déploiement et configuration relativement simple Le programmeur s'occupe du développement logiciel de façon transparente (le framework s'occupe du reste!)

Un peu d'histoire 2002 : Doug Cutting (directeur archive.org) et Mike Cafarella (étudiant) développent Nutch, un moteur de recherche Open Source exploitant le calcul distribué (quelques machines et multiples problèmes d'accès et de partage de fichiers) 2003/2004 : Google (recherche) publie deux whitepapers GFS (un système de fichier distribué) et Map/Reduce (calcul distribué) 2004 : Doug Cutting et Mike Cafarella développent un framework inspiré des papiers de Google et portent leur projet Nutch sur ce framework 2006 : Doug Cutting crée une version améliorée Hadoop (peluche de son fils...) (5 à 20 machines) 2008 : Hadoop est exploité par le moteur de recherche de Yahoo ainsi que par de nombreuses autres divisions de l'entreprise 2011 : Hadoop est utilisé par de nombreuses autres entreprises et des universités, et le cluster Yahoo comporte 42000 machines et des centaines de petaoctets d'espace de stockage. 2015 : Hadoop se généralise notamment avec le buzz BigData et Cloud...

Le modèle Map/Reduce (1/3) MapReduce définit deux opérations distinctes à effectuer sur les données d'entrée MAP transforme les données d'entrée en une série de couples clef/valeur Regroupe les données en les associant à des clefs Opération parallélisable: on doit pouvoir découper les données d'entrée en plusieurs fragments, et faire exécuter l'opération MAP à chaque machine du cluster sur un fragment distinct REDUCE appliquer un traitement à toutes les valeurs des clefs distinctes produite MAP produire un résultat pour chacune des clefs distinctes Attribuer à chacune des machines du cluster une des clefs uniques produites par MAP, en lui donnant la liste des valeurs associées à la clef Chacune des machines effectuera alors l'opération REDUCE pour cette clef

Le modèle Map/Reduce (2/3) 4 étapes distinctes dans un traitement Map/Reduce Découper (split) les données d'entrée en plusieurs fragments Mapper chacun de ces fragments pour obtenir des couples (clef ; valeur) Grouper (shuffle) ces couples (clef ; valeur) par clef Réduire (reduce) les groupes indexés par clef en une forme finale, avec une valeur pour chacune des clefs distinctes En modélisant le problème à résoudre de la sorte, on le rend parallélisable chacune de ces tâches à l'exception de la première seront effectuées de manière distribuée

Le modèle Map/Reduce (3/3) Pour résoudre un problème via la méthodologie Map/Reduce avec Hadoop, on devra donc : Choisir une manière de découper les données d'entrée de telle sorte que l'opération MAP soit parallélisable Définir quelle CLEF utiliser pour notre problème Écrire le programme pour l'opération MAP Ecrire le programme pour l'opération REDUCE et Hadoop se chargera du reste (problématiques calcul distribué, groupement par clef distincte entre MAP et REDUCE, etc.)

Exemple (1/5) Déterminer (pour un travail de prospection) quels sont les mots les plus utilisés au sein d'un texte (exemple Hadoop très répandu) nos données d'entrée sont constituées du contenu du texte Comment découper (split) les données d'entrée pour que chacune des machines puisse travailler sur une partie du texte découper les données d'entrée ligne par ligne Chacune des lignes du texte constitue un fragment d'entrée Celui qui croyait au ciel Celui qui croyait au ciel Celui qui n'y croyait pas [ ] Fou qui fait le délicat Fou qui songe à ses querelles Celui qui n'y croyait pas Fou qui fait le délicat Fou qui songe à ses querelles

Exemple (2/5) Opération MAP déterminer la clef à utiliser écrire le code de l'opération MAP elle-même Puisqu'on s'intéresse aux occurrences des mots, et qu'à après l'opération REDUCE on aura un résultat pour chacune des clefs distinctes, la clef qui s'impose logiquement dans notre cas est: le mot-lui même. L'opération MAP parcoure le fragment d'entrée et, pour chacun des mots, génère le couple clef/valeur: (MOT ; 1). Celui qui croyait au ciel Celui qui n'y croyait pas (celui;1) (qui;1) (croyait;1) (au;1) (ciel;1) (celui;1) (qui;1) (croyait;1) (au;1) (ciel;1) (celui;1) (qui;1) (ny;1) (croyait;1) (pas;1) (celui;1) (qui;1) (ny;1) (croyait;1) (pas;1) Fou qui fait le délicat (fou;1) (qui;1) (fait;1) (le;1) (delicat;1) (fou;1) (qui;1) (fait;1) (le;1) (delicat;1) Fou qui songe à ses querelles (fou;1) (qui;1) (songe;1) (a;1) (ses;1) (querelles;1)

Exemple (3/5) Opération SHUFFLE (effectuée automatiquement par Hadoop) Grouper tous les couples par clef commune... De façon distribuée en utilisant un algorithme de tri distribué Après exécution, on obtient 15 groupes dans notre exemple : (celui;1) (celui;1) (fou;1) (fou;1) (qui;1) (qui;1) (qui;1) (qui;1) (fait;1) (croyait;1) (croyait;1) (le;1) (au;1) (delicat;1) (ny;1) (songe;1) (ciel;1) (a;1) (pas;1) (ses;1) (querelles;1)

Exemple (4/5) Opération REDUCE appelée pour chacun des groupes/clef distincte Dans notre cas, elle consiste à additionner toutes les valeurs liées à la clef spécifiée Après exécution, on obtient une valeur unique pour chaque clef ; dans notre exemple : qui: 4 celui: 2 croyait: 2 fou: 2 au: 1 ciel: 1 ny: 1 pas: 1 fait: 1 [ ]

Exemple (5/5) Exemple simple! Grande masses de données et traitements lourds, e.g., des statistiques plus avancées sur des données volumineuses (application en apprentissage automatique) Il nous suffit de développer les deux opérations réellement importantes du traitement: MAP et REDUCE, et de bénéficier automatiquement de la possibilité d'effectuer le traitement sur un nombre variable de machines de manière distribuée.

HDFS Système de fichiers utilisé dans Hadoop Hadoop Distributed File System Système pour le stockage distribué des données Les données sont distribuées : réparties sur les différentes machines du cluster hadoop Les données sont répliquées : ceci est géré par le framework HDFS de Hadoop Le système de gestion des tâches (MAP,REDUCE) est en communication avec le HDFS Optimisation du positionnement des données et des tâches Privilégier une exécution locale (éviter les échanges réseaux)

Architecture HDFS HDFS repose sur deux serveurs (daemons) Le NameNode : stocke les informations relatives aux noms de fichiers e.g., le fichier «livre_5321» dans le répertoire «data_input» comporte 58 blocs de données réparties sur les machines X, Y et Z. Il y a un seul NameNode dans tout le cluster Hadoop Les DataNode : stockent les blocs de données eux-mêmes Il y a un DataNode pour chaque machine au sein du cluster, en communication constante avec le NameNode Par défaut, les données sont divisées en blocs de 64KB (configurable) Hadoop est inspiré de GFS (système de fichier distribué conçu par Google) L'implémentation de HDFS a son origine dans un whitepaper issu du département de recherche de Google («The Google File System», 2003)

Commandes HDFS L'utilitaire console hadoop avec l'option fs permet de manipuler les données dans HDFS Globalement, on réplique les commandes systèmes standard Linux Pour stocker le fichier livre.txt sur HDFS dans le répertoire /data_input hadoop fs -put livre.txt /data_input/livre.txt Pour obtenir le fichier /data_input/livre.txt de HDFS et le stocker dans le fichier local livre.txt hadoop fs -get /data_input/livre.txt livre.txt Pour créer le répertoire /data_input hadoop fs -mkdir /data_input Pour supprimer le fichier /data_input/livre.txt hadoop fs -rm /data_input/livre.txt d'autres commandes usuelles: -ls, -cp, -rmr, -du, etc.

Écriture HDFS

Lecture HDFS

Remarques HDFS La gestion du stockage est assurée par les daemons Hadoop on ne se soucie pas de où sont stockées les données. Hadoop réplique lui-même les données: les fichiers sont disponibles à tout moment sur plusieurs DataNodes, et si une machine tombe en panne, on a toujours accès aux données grâce à la réplication. Le NameNode est unique on ne peut pas en avoir plusieurs à priori... On peut brancher Hadoop par le biais de ponts sur une base de données pour en extraire des données d'entrée/y stocker des résultats