Master d Informatique BDR - 4I803 - Cours 8

Documents pareils
Programmation parallèle et distribuée

Programmation parallèle et distribuée

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

TP Bases de données réparties

Évaluation et optimisation de requêtes

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

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)

Module BDR Master d Informatique (SAR)

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

Bases de données réparties: Fragmentation et allocation

Cartographie des solutions BigData

1 Introduction et installation

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)

Introduction à MapReduce/Hadoop et Spark

Module BDR Master d Informatique (SAR)

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

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Implémentation des SGBD

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

4 Exemples de problèmes MapReduce incrémentaux

Présentation du module Base de données spatio-temporelles

Certificat Big Data - Master MAthématiques

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Structure fonctionnelle d un SGBD

Bases de données et sites WEB Licence d informatique LI345

Cours Bases de données

Le langage SQL Rappels

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Cassandra et Spark pour gérer la musique On-line

données en connaissance et en actions?

Technologie SDS (Software-Defined Storage) de DataCore

Bases de données avancées Introduction

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Les technologies du Big Data

Optimisations des SGBDR. Étude de cas : MySQL

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

Hibernate vs. le Cloud Computing

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

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Langage SQL : créer et interroger une base

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

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

<Insert Picture Here> Exadata Storage Server et DB Machine V2

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Sauvegarde collaborative en pair-à-pair

<Insert Picture Here> Solaris pour la base de donnés Oracle

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

Big Data et Graphes : Quelques pistes de recherche

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

Administration de Bases de Données : Optimisation

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Le Langage SQL version Oracle

Big Data et Graphes : Quelques pistes de recherche

Le passage à l échelle de serveur J2EE : le cas des EJB

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

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.

Bases de données relationnelles

HADOOP ET SON ÉCOSYSTÈME

Bases de Données. Plan

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

BONJOURGRID : VERSION ORIENTÉE DONNÉE & MAPREDUCE SÉCURISÉ

Chapitre 10. Architectures des systèmes de gestion de bases de données

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

INTRODUCTION AU DATA MINING

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Les bases de données

Ricco Rakotomalala R.R. Université Lyon 2

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

Évaluation d une architecture de stockage RDF distribuée

Introduction aux SGBDR

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

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

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

Java et les bases de données

Le Langage De Description De Données(LDD)

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

CESI Bases de données

A QUOI SERVENT LES BASES DE DONNÉES?

Optimisation SQL. Quelques règles de bases

Master I Génie Logiciel

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Bases de Données Avancées

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Du 10 Fév. au 14 Mars 2014

Conception des systèmes répartis

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Intégration de données hétérogènes et réparties. Anne Doucet

Caches sémantiques coopératifs pour la gestion de données sur grilles

Panorama des solutions analytiques existantes

Transcription:

Master d Informatique BDR - 4I803 - Cours 8 Bases de données parallèles 1 Plan Introduction Architectures Placement des données Parallélisme dans les requêtes Optimisation de requêtes 2 1

Introduction Les machines parallèles deviennent courantes et abordables Les prix des microprocesseurs, de la mémoire et des disques ont fortement diminué Les réseaux permettent d accéder à des systèmes distants Les BD sont de plus en plus volumineuses (ex. entrepôts de données, multimedia, index google ) Principe des BD parallèles : utiliser les machines parallèles (systèmes distribués) pour exploiter le parallélisme dans la gestion de données. 3 Parallélisme dans les BD Les données peuvent être partitionnées sur plusieurs disques pour faire des entrées/sorties en parallèle. Les opérations relationnelles (tri, jointure, agrégations) peuvent être exécutées en parallèle Les données peuvent être partitionnées, et chaque processeur peut travailler indépendamment sur sa partition Les requêtes sont exprimées dans un langage de haut niveau (SQL), et traduites en opérateurs algébriques. Facilite le parallélisme Les requêtes peuvent être exécutées en parallèle 4 2

Différents types de parallélisme Inter-requête : chaque proc. exécute une requête différente Intra-requête : plusieurs proc. exécutent (des morceaux de) la même requête Inter-opérateur : chaque proc. exécute un sous arbre du plan d exécution. Intra-opérateur : plusieurs proc. exécute le même opérateur mais sur un sous-ensemble des données 5 Objectifs des BD parallèles Contrairement à BD réparties, on ne s intéresse pas à la localité par rapport à l émetteur de la requête Améliorer les performances (temps de réponse) Améliorer la disponibilité (réplication) Approche cluster : réduire les coûts (utiliser plusieurs petites machines est moins cher qu un gros ordinateur). Approche clouds : datacenters = n clusters «pay on-demand» Les SGBD parallèles sont utilisés pour : Stocker de très grandes quantités de données Effectuer des requêtes d aide à la décision coûteuses Permettre le traitement de transactions à haut débit 6 3

Architectures de BD parallèles Se classent selon ce qui est partagé : Shared Memory Systems (partage de la mémoire) Shared Disk Systems (partage du disque) Shared Nothing Systems (pas de partage sauf bus rapide, e.g. PC cluster) Hybrid Systems (systèmes hybrides) Moins on partage, plus on est extensible.. 7 Mémoire partagée Tous les processeurs partagent le disque et la mémoire P P P Interconnexion (bus) Mémoire globale partagée D D D 8 4

Mémoire partagée + simplicité (comme si une seule mémoire) + équilibrage de charge (on peut choisir n importe quel proc.) + parallélisme inter-requête (ajout de processeur) direct, intra-requête possible (assez simple) - Peu extensible : limité à des dizaines de processeurs (à cause des accès concurrents à la mémoire) - Cher : chaque processeur doit être lié à chaque module de mémoire - Conflits d accès à la mémoire (dégrade les performances) - Pb de disponibilité des données en cas de défaut de mémoire (affecte plusieurs processeurs) Utilisé dans plusieurs systèmes commerciaux : Oracle, DB2, Ingres 9 Disques partagés Ensemble de noeuds (processeurs et mémoire) ayant accès via un réseau d interconnexion à tous les disques (les mémoires ne sont pas partagées). P P P M M M Interconnexion (bus) D D D 10 5

Disques partagés + moins cher que systèmes mémoire partagée (interconnexion moins complexe). + extensibilité (centaines de processeurs) : les processeurs ont suffisamment de mémoire cache pour minimiser les interférences sur le disque. + bonne disponibilité (répli. et défauts de mémoire locaux à un processeur) + migration facile de systèmes existants (pas de réorganisation des données sur le disque) - Assez complexe - Pbs de performance : Verrous distribués pour éviter les accès conflictuels aux mêmes pages, maintien de la cohérence des copies, l accès aux disques partagés peut devenir un goulot d étranglement Utilisé dans IMS/VS(IBM), VAX (DEC) 11 Aucun partage Les différents noeuds sont reliés par un réseau d interconnexion. Chaque processeur a un accès exclusif à la mémoire et au disque (idem BD réparties). Interconnexion (bus) P P P M M M D D D 12 6

Aucun partage + Coût semblable à celui des disques partagés + Bonne extensibilité (milliers de noeuds) + Disponibilité par réplication des données + réutilisation des technique de BD réparties + Bien adapté au parallélisme intra-requête - Plus complexe que les systèmes à mémoire partagée (mêmes fct. qu en BD réparties) - Répartition de charge difficile à mettre en oeuvre, à cause de la répartition statique des données (le proc. n accède qu à SON disk) - Ajouter des noeuds entraîne une réorganisation des données (pour permettre la répartition de charge), sauf si réplication totale Utilisé dans ICL Goldrush, Teradata DBC, EDS, solutions intergicielles pour clusters (Leg@net/Refresco ) 13 Systèmes hybrides Combinaison de systèmes à mémoire partagée et de systèmes sans partage. Interconnexion (bus) D P D P D P D P D P D P D P D P D P D P D P D P Mémoire Mémoire Mémoire 14 7

Systèmes hybrides Chaque noeud individuel est un système à mémoire partagée. + Combine la souplesse et les performances des systèmes à mémoire partagée avec les capacités d extensibilité des systèmes sans partage. + La communication au sein de chaque noeud est efficace (mémoire partagée). + Bon compromis entre répartition de charge et passage à l échelle. 15 Parallélisme inter-requêtes Forme la plus simple du parallélisme Les requêtes (et les transactions) s exécutent en parallèle Augmente le débit de transactions (utilisé pour augmenter le nombre de transactions par seconde) Plus difficile à implémenter sur les architectures disque partagé et sans partage La coordination des verrouillages et des journaux s effectue par envois de messages entre processeurs Les données d un buffer local peuvent avoir été mises à jour sur un autre processeur Nécessité de maintenir la cohérence des caches (les lectures et écritures dans le buffer doivent concerner la version la plus récente.) 16 8

Cohérence du cache Protocole pour les architectures à disques partagés : Avant de lire/écrire une page, la verrouiller en mode partagé/exclusif Une page verrouillée doit être lue du disque (version la plus récente) Avant de déverrouiller une page, elle doit être écrite sur le disque (si elle a été modifiée) Des protocoles plus complexes existent, limitant les lectures/écritures sur disque. Des protocoles semblables existent pour les architectures sans partage. 17 Parallélisme intra-requêtes Exécuter une seule requête en parallèle sur plusieurs processeurs (important pour les requêtes «longues») Deux formes de parallélisme : Inter-opérateurs : exécuter plusieurs opérations en parallèle (longue= complexe) Intra-opérateurs : paralléliser l exécution de chaque opération dans la requête (longue= sur bcp de données) 18 9

Parallélisme inter-opérateurs Deux formes : Pipeline : plusieurs opérateurs successifs sont exécutés en parallèle, le résultat intermédiaire n est pas matérialisé. Gain de place mémoire et minimise les accès disque. Risque d attente des résultats de l opé. précédent. Parallélisme indépendant : les opérateurs sont indépendants, pas d interférence entre les processeurs. Le résultat est matérialisé = coût 19 Parallélisme intra-opérateurs Décomposer un opérateur en un ensemble de sousopérateurs, chacun s exécutant sur une partition de la relation. Exemple pour la sélection : σ S (R) σ S1 (R 1 ) Uσ S2 (R 2 ) U U σ Sn (R n ) si S porte sur l attribut de partitionnement, on peut éliminer certains Si Pour les jointures, on utilise les propriétés du partitionnement : par ex. si R et S sont partitionnées par hachage sur l attribut de jointure, et s il s agit d une équijointure, on peut partitionner la jointure en jointures indépendantes. => dépend de la manière dont on partitionne les données 20 10

Partitionnement des données Répartir les données sur les disques permet de réduire le temps d accès aux données par parallélisme (pas par localité, car utilisateur pas affecté à nœud) Partitionnement horizontal : les n-uplets d une relation sont répartis sur les différents disques (pas de partitionnement de n-uplet). Différentes techniques de partitionnement (nb de disques = n) : Round-robin : le i ème n-uplet inséré dans la relation est stocké sur le disque i mod n Partitionnement par hachage (hash partitioning) : Choisir un ou plusieurs attributs comme attributs de partitionnement Appliquer une fonction de hachage (renvoyant un entier de 0 à n-1) à ces attributs Stocker le n-uplet sur le disque correspondant au résultat de la fonction de hachage 21 Partitionnement des données (suite) Partitionnement par intervalles (range partitionning) : répartit les n-uplets en fonction des intervalles de valeurs d un attribut Choisir un attribut pour le partitionnement Choisir un vecteur de partitionnement [v 0, v 1,, v n-2 ] Soit v la valeur de l attribut de partitionnement. Les n-uplets tq v<v 0 vont sur le disque 0 Les n-uplets tq v v n-2 vont sur le disque n-1 Les n-uplets tq v i < v v i+1 vont sur le disque i+1 22 11

Comparaison Comparer sur les opérations : Parcours de la relation (scan) Sélection sur égalité (ex: R.A=15) Sélection sur intervalles (ex: 10 R.A < 25) Round-robin : Convient bien au parcours séquentiel de relations Bonne répartition des n-uplets sur les disques (bonne répartition de charge) Mal adapté aux requêtes avec sélection (pas de regroupement, les données sont dispersées) 23 Comparaison (suite) Partitionnement par hachage Efficace pour les accès séquentiels Si on a une bonne fonction de hachage, et si le(s) attribut(s) de partitionnement est (sont) clé, il y a bonne répartition des n-uplets sur les disques, et une bonne répartition de la charge pour rechercher les données Efficace pour les sélections par égalité sur l attribut de partitionnement La recherche peut se limiter à un seul disque Possibilité d avoir un index local sur l attribut de partitionnement Mal adapté aux sélections sur intervalles, car il n y a pas de regroupement. 24 12

Comparaison (suite) Partitionnement par intervalle Les données sont regroupées par valeurs de l attribut de partitionnement Efficace pour les accès séquentiels Efficace pour les sélections par égalité sur l attribut de partitionnement Bien adapté aux sélections sur intervalles (seul un nombre limité de disques est concerné) Efficace si les n-uplets du résultat se trouvent sur peu de disques Risque de répartition inégale sur les disques (data skew) 25 Partitionnement d une relation Compromis : Ne pas partitionner une relation qui tient sur un seul disque (minimiser les transfert) Utiliser l ensemble des disques pour un partitionnement (maximiser le parallélisme) Ne pas partitionner plus que nécessaire : si une relation tient sur m blocs et qu il y a n disques, partitionner sur min(n,m) disques 26 13

Gestion des répartitions non uniformes Certains algorithmes de répartition risquent de donner lieu à une répartition inégale des données (bcp sur un disque, peu sur un autre), ce qui peut dégrader les performances: Mauvais choix de vecteur de partition Mauvais choix de fonction de hachage Répartition inégale des valeurs d un attribut de partitionnement Solutions (partitionnement par intervalles) : Créer un vecteur de partitionnement équilibré (trier la relation sur l attribut de partitionnement et diviser en sous-ensembles de même taille) Utiliser des histogrammes Coûteux mais peut valoir le coup 27 Traitement parallèle des opérateurs relationnels Suppositions : Requêtes en lecture seule Architecture sans partage N processeurs, et N disques (D 1 est associé à P 1 ) Les architectures sans partage peuvent être simulées efficacement sur des architectures à mémoire partagées ou à disques partagés. Les algorithmes peuvent être appliqués, avec différentes optimisations, sur ces architectures. 28 14

Tri parallèle Range-partitioning sort : Choisir les processeurs P 0, P m, avec m<n, pour faire le tri. Créer des vecteurs de partition par intervalle avec m entrées, sur l attribut de jointure Redistribuer la relation selon cette partition : tous les n-uplets du i ème intervalle sont envoyés au processeur P i P i stocke temporairement les n-uplets sur son disque D i Chaque processeur trie sa partition de la relation localement (en parallèle, sans interaction avec les autres processeurs) On fusionne les différents résultats (les partitions sont déjà ordonnées donc simple concaténation). 29 Tri parallèle Trifusion parallèle externe : La relation est partitionnée sur les n disques (RR). Chaque processeur trie localement ses données. La fusion est parallélisée : Les partitions triées sur chaque processeur sont partitionnées par intervalle sur les différents processeurs Chaque processeur fusionne les données qu il reçoit à la volée. Les différents résultats sont concaténés 30 15

Jointure parallèle Principes : La jointure consiste à tester les n-uplets deux par deux et à comparer la valeur des attributs de jointure. Le parallélisme consiste à répartir ces tests sur des processeurs différents, chacun calculant une partie de la jointure localement. Les résultats sont ensuite rassemblés. 31 Jointure par partitionnement Partitionner (attention, coûteux) les deux relations (par hachage ou par intervalle) en n partitions, sur l attribut de jointure, en utilisant la même fonction de hachage ou le même vecteur de partitionnement. Les partitions r i et s i sont envoyées au processeur P i. Chaque processeur calcule la jointure entre r i et s i (avec n importe quel algorithme) Les résultats sont concaténés. Attention : difficile de contrôler la taille de r i et s i. Equilibrage de charge difficile 32 16

Jointure par partionnement 33 Boucles imbriquées en parallèle Les relations R et S sont fragmentées en m et n fragments respectivement. Envoyer (en parallèle) les m fragments de R sur les n nœuds où se trouvent des fragments de S. Faire la jointure sur ces nœuds.(en parallèle) Concaténer les résultats. 34 17

Jointure parallèle par hachage Partitionner (en parallèle) les relations R et S en k partitions à l aide d une fonction de hachage h appliquée à l attribut de jointure tq R S = U (i=1..k) (Ri Si) Les partitions de R et de S ayant même valeur de hachage sont envoyées sur le même processeur. Faire les jointures sur chaque processeur en parallèle (k jointures en parallèle) Concaténer les résultats 35 Jointure parallèle par hachage fragments de R fragments de S Nœud 1 : R1 S1 h=1 h=2 Nœud 2 : R2 S2 36 18

Optimisation de requêtes Semblable à l optimisation de requêtes dans les BD réparties. Espace de recherche Les arbres algébriques sont annotés pour permettre de déterminer les opérations pouvant être exécutées à la volée (pipeline). Génération d arbres linéaires gauche, droite, en zig-zag, touffus. Modèle de coût Dépend en partie de l architecture Stratégie de recherche Les mêmes qu en environnement centralisé (les stratégies aléatoires sont mieux adaptées en raison de la taille de l espace de recherche, plus grand car on considère plus de possiblité de paralléliser) 37 Map Reduce 19

Hadoop et Map Reduce (source : Arnault Jeanson) projet Open Source écrit en java, distribué Apache. Adapté au stockage et traitement par lots de très grandes quantités de données Utilisé par Yahoo! ou Facebook. Système de fichiers HDFS : permet de distribuer le stockage des données analyses très performantes sur ces données grâce au modèle MapReduce distribue une opération sur plusieurs nœuds dans le but de paralléliser leur exécution. 39 Stockage HDFS Système de fichiers distribués: blocs d informations sont répartis et répliqués (configurable) sur les différents nœuds du cluster. un ensemble de commandes est mis à disposition pour interagir avec ce système 40 20

Exemple n 1 : Log de serveur web Données : un fichier de log. Une ligne contient : (User, URL, timestamp, complement-info) Chargement des données dans un SGBD Nettoyer les données Extraction Vérification Spécifier le schéma Chargement dans un système Hadoop Directement sans faire les opérations préliminaires ci-dessus. Contrepartie : les opérations de nettoyage, extraction, vérification, spécification de schéma devront être faites pendant l exécution, mais seulement sur la portion des données qu on manipule, pas sur toutes les données. Exemple de requêtes Requête 1 Trouver les enregistrements selon un critère : User ou URL ou timestamp Traitement facilement parallélisable Bien adapté aux solutions NoSQL Requête 2 Trouver les paires d utilisateurs qui accèdent la même URL Auto jointure Moins évident à paralléliser Requête 3 Age Moyen des utilisateurs accédant la même url Besoin de cohérence assez faible. 21

Exemple 2 : Graphe social Données: schéma composé de 2 tables Profile(u, nom, age, genre) Lien(u, v) u et v sont amis Requêtes Trouver les amis des amis de l utilisateur u1 Plus généralement : traversé d un graphe pas exprimable en SQL Rmq: SQL se limite aux traversées d arbre» Cf la clause connect by d oracle Etendre SQL avec la récursion Système Map Reduce Un système Map Reduce apporte un moteur pour répartir les traitements sur des données réparties Répartition des traitements transparente pour l'utilisateur la tolérance aux pannes est transparente pour l utilisateur Reprise partielle des sous tâches défectueuses Pas de modèle de données les données sont dans des fichiers Stockage réparti: dans un système de fichiers tq HDFS L utilisateur défini plusieurs fonctions map() reduce() reader() pour lire un fichier et construire des enregistrements writer() pour écrire les enregistrements dans un fichier combine() 22

Principe de Map Reduce Traite des données quelconques Fichier: liste d éléments (un élément par ligne) Map : diviser le problème en sous problèmes Map(élément) 0 ou n couples (clé, valeur) Reduce : est évalué pour chaque sous problème Reduce (clé, liste de valeurs) 0 ou n élément Architecture fonctionnelle de Map Reduce (k1, v1) (k1, v2) Reduce k1, w1 donnée Map (k2, v 1) (k2, v 2) Reduce k2, w 1 23

Architecture Générale k1, w1 (k1, v1) (k1, v2) (k2,v 1) (k1, {v1, v2}) Reduce Write Read Map Combine (k1, {...}) Read Map (k1,...) (k1,...) (k2,...)... Combine (k2, {...}) k2, w 1 (k2, {v 1, v 2}) Reduce Write Combine: prétraitement (regroupement et tri) avant d invoquer la fonction reduce Combine: local, Reduce :global Map : travaille sur un bloc de fichier d entrée. Combine agrège sur les blocs de la machine MR : Modèle d exécution 24

Execution MR dans Hadoop Etape 1 : Reader, Map, Combine Lire les fichiers d entrée, pour chaque élément lu Produire une liste de couples Combine (avec tri local) Regrouper les couples par clé Etape 2 : Shuffle : Transmission des couples répartir les couples sur plusieurs machines Par hachage ou trié Etape 3 : Merge, Combine, Reduce, Write Fusionner les données pour avoir une seule liste de valeurs par clé Fusion en plusieurs passes si nécessaire (selon ram dispo) Invoquer Combine à chaque passe Invoquer reduce pour chaque valeur de clé puis écrire le résultat dans un fichier Exemple 1 Données D (clé, champ) Requête (grep) Select * from D where champ like %xyz% MR Map( ligne) (clé, champ) split(ligne) If ( champ contient xyz ) then ajouter (clé, champ) en sortie Pas besoin de reduce() 25

Exemple : word count Afficher le nombre d occurrences de chaque mot d un fichier Fichier très grand Données un fichier texte Map Argument d entrée : une ligne du fichier Retourne: une liste de couples (mot, null) Corps: Extraire les mots de la ligne Construire (mot 1, null), (mot 2, null),. Reduce Argument d entrée : (mot, liste) La liste est {null, null, } Retourne le couple (mot, longueur de la liste) Exemple 2 Données Document (URL, contents) Ranking (pageurl, pagerank, avgduration) UserVisit (sourceip, desturl, visitdate, adrevenue, useragent, countrycode, languagecode, search Word, duration ) 26

Requetes d analyse : sélection Sélection select pageurl, pagerank from Rankings where pagerank > x MR Map(ligne de Ranking) (pageurl, pagerank, avgduration) Split(ligne) If pagerang > X Then ajouter (pageurl, pagerank) en sortie Pas de reduce Requête d analyse : agrégation Agrégation select sourceip, sum(adrevenue) from UserVisit group by sourceip MR Map Ajouter (sourceip, adrevenue) Combine Regrouper par sourceip et somme des adrevenue Reduce : Somme des adrevenue 27

Requête d analyse : jointure Jointure Select sourceip, avg(pagerank), sum(adrevenue) From Ranking r, UserVisit v Where r.pageurl = v.desturl And visitdate between jan-2011 and jan-2012 Group by sourceip Map Reduce : exemple On veut compter les mots du fichiers (représentés ici par leur initiale en majuscule) 56 28

1. le fichier est découpé (splitting) en différents blocs répartis sur les noeuds 2. le mapping consiste à envoyer le traitement de comptage sur chaque bloc 3. le shuffling consiste à répartir ces informations en fonction de la clé 4. le reducing consiste à agréger les informations récupérées 57 Conclusion Les BD parallèles améliorent Les performances, La disponibilité L extensibilité Tout en réduisant le ratio prix/performance. Plusieurs systèmes commercialisés. Hadoop et map reduce très à la mode Pbs : choisir la meilleure architecture améliorer les techniques de placement de données (éviter les répartitions inégales) 58 29