Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Cours Framework JAVA

Démarrer avec le Framework JAVA MapReduce Hadoop et Spark

Démarrer avec le Framework JAVA MapReduce Hadoop et Spark
Participez au vote ☆☆☆☆☆★★★★★

Introduction à MapReduce/Hadoop et Spark

Certificat Big Data

Ludovic Denoyer et Sylvain Lamprier

UPMC

Plan

Contexte

Data driven science: le 4e paradigme (Jim Gray - Prix Turing)

SNR 2013

Extrait: ”A l’heure actuelle, la science vit une révolution qui conduit à nouveau paradigme selon lequel ’la science est dans les données’, autrement dit la connaissance émerge du traitement des données [ ] Le traitement de données et la gestion de connaissances représentent ainsi le quatrième pilier de la science après la théorie, l’expérimentation et la simulation. L’extraction de connaissances à partir de grands volumes de données (en particulier quand le nombre de données est bien plus grand que la taille de l’échantillon) , l’apprentissage statistique, l’agrégation de données hétérogènes, la visualisation et la navigation dans de grands espaces de données et de connaissances sont autant d’instruments qui permettent d’observer des phénomènes, de valider des hypothèses, d’élaborer de nouveaux modèles ou de prendre des décisions en situation critique”

Traitement de données

..

68% des entreprises qui ont systématiquement recours à une analyse de données dans leurs prises de décision voient leurs bénéfices augmenter

*  selon une étude menée par the Economist Intelligence Unit (2014)

.

Pour qui réussit à optimiser son usage, la donnée devient information, puis, bien partagée au sein de l’entreprise, elle se transforme en connaissance et constitue son savoir. Elle peut être une source de services et d’innovations, notamment lorsqu’on la croise avec d’autres données et qu’elle provient de sources diverses.

*  Enjeux Business des données - CIGREF 2014


Traitement de données en entreprise

La donnée est donc l’un des principaux actifs immatériels de nos organisations, et pour autant, n’est pas encore gérée avec la même rigueur ni les mêmes moyens que les autres ressources, capital et ressources humaines notamment. Dans un contexte où elle est devenue critique pour l’activité de l’entreprise, la mise en place d’une gestion structurée et industrielle de la donnée est impérative.

* Enjeux Business des données - CIGREF 2014


Dans ce cours

Calcul distribué

Un des enjeux concerne le traitement de grandes quantités de données. Ce traitement ne peut être réalisé avec les paradigmes classiques de traitement de données et nécessite l’utilisation de plateformes distribuées de calcul

Introduction à Hadoop

Introduction à Spark

Prise en main des deux plateformes

Distribution des Données

Map Reduce


Map-Reduce

 The Yahoo ! Search Webmap is a Hadoop application that runs on a more than 10,000 core Linux cluster and produces data that is now used in every Yahoo ! Web search query.

 Google : the size of one phase of the computation [of the index] dropped from approximately 3800 line of C++ code to approximately 700 lines when expressed using MapReduce.

 Facebook has multiple Hadoop clusters deployed now with the biggest having about 2500 cpu cores and 1 PetaByte of disk space. We are loading over 250 gigabytes of compressed data (over 2 terabytes uncompressed) into the Hadoop file system every day and have hundreds of jobs running each day against these data sets.

 Hadoop est aussi utilisée par Twitter, Amazon, Rackspace, LinkedIn, IBM, Veoh, (en Bash ! !), Microsoft

Traitement distribué

Apache Hadoop

Framework distribué

Utilisé par de très nombreuses entreprises

Traitements parallèles sur des clusters de machines

? Amener le code aux données

Système de fichiers HDFS

Système de fichiers virtuel de Hadoop

Conçu pour stocker de très gros volumes de données sur un grand nombre de machines

Permet l’abstraction de l’architecture physique de stockage Réplication des données


Architecture de machines HDFS

NameNode :

Gère l’espace de noms, l’arborescence du système de fichiers et les métadonnées des fichiers et des répertoires

 SecondaryNameNode :

Gère l’historique des modifications dans le système de fichiers

Permet la continuité du fonctionnement du cluster en cas de panne du NameNode principal

 DataNode :

Stocke et restitue les blocs de données.

Hadoop

De nombreux outils basés sur Hadoop

MapReduce : Outil de mise en oeuvre du paradigme de programmation parallèle du même nom

HBase : Base de données distribuée disposant d’un stockage structuré pour les grandes tables

Hive : Logiciel d’analyse de données (initialement développé par Facebook) permettant d’utiliser Hadoop avec une syntaxe proche du SQL

 Pig : Logiciel d’analyse de données (initialement développé par Yahoo!) comparable à Hive mais utilisant le langage Pig Latin

Spark : Framework de traitement de données distribué avec mémoire partagée

Plateforme d’apprentissage Mahout


Qui utilise Hadoop?

 Exécution d’un problème de manière distribuée

? Découpage en sous-problèmes

? Execution des sous-problèmes sur les différentes machines du cluster

Stratégie algorithmique dite du Divide and Conquer

Map Reduce

Paradigme de programmation parallèle visant à généraliser les approches existantes pour produire une approche unique applicable à tous les problèmes. Origine du nom : languages fonctionnels

Calcul distribué : ”MapReduce: Simplified Data Processing on Large Clusters” [Google,2004]

Reduce: Regroupement des valeurs de clé identique et application d’un traitement sur ces valeurs de clé commune

Ecrire un programme Map Reduce:

Choisir une manière de découper les données afin que Map soit parallélisable

Choisir la clé à utiliser pour notre problème

Écrire le programme pour l’opération Map

Écrire le programme pour l’opération Reduce


Exemple classique : le Comptage de mots

Fichiers d’entrée textuels

On veut connaître le nombre d’occurences de chacun des mots dans ces fichiers

Il faut décider :

De la manière dont on découpe les textes

Des couples <clé,valeur> à émettre lors du Map appliqué à chaque morceau de texte

Du traitement à opérer lors du regroupement des clés communes (Reduce)

Fichier d’entrée :

Pour simplifier, on retire tout symbole de ponctuation et caractères spéciaux. On passe l’intégralité du texte en minuscules.

Découpage des données d’entrée: par exemple par ligne

 Ici, 4 unités de traitement après découpage

Opération Reduce :

Sommation des valeurs de toutes les paires de clé

commune

Ecriture dans un (ou des) fichier(s) resultats


Etude de Cas

Map(String input_key, String input_values) : foreach word w in input_values: EmitIntermediate( w, "‘1"’);

Reduce (String key, Iterator intermediate_values):

int result=0; foreach v in intermediate_values:

result += ParseInt( v );

Emit( key, String( result ));

Implémentations

Plusieurs implémentations existent.

Dans différents languages (C++, C#, Erlang, Java, Python,

Ruby, R, ..)

La plus connue est Hadoop (de la fondation Apache)

Hadoop

          public      s t a t i c      class          TokenizerMapper          extends       Mapper<

{

private    f i n a l   s t a t i c                IntWritable         one = new           IntWri private    Text       word = new        Text ( ) ;

public    void       map( Object       key ,       Text       value ,   Context c throws              IOException ,     InterruptedExcept

{

StringTokenizer i t r = new StringTokenizer ( value while ( i t r . hasMoreTokens ( ) )

{

word . set ( i t r . nextToken ( ) ) ;

                             context . write ( word ,         one ) ;

}

}

}


Composants d’un processus Map Reduce:

Split: Divise les données d’entrée en flux parallèles à fournir aux noeuds de calcul.

Read: Lit les flux de données en les découpant en unités à traiter. Par défaut à partir d’un fichier texte: unité = ligne.

Map: Applique sur chaque unité envoyé par le Reader un traitement de transformation dont le résultat est stocké dans des paires <clé,valeur>.

Combine: Composant facultatif qui applique un traitement de reduction anticipé à des fins d’optimisation. Cette étape ne doit pas perturber la logique de traitement.

Composants d’un processus Map Reduce:

Group: Regroupement (ou shuffle) des paires de clés communes. Réalisé par un tri distribué sur les différents noeuds du cluster.

Partition: Distribue les groupes de paires sur les différents noeuds de calcul pour préparer l’opération de reduction. Généralement effectué par simple hashage et découpage en morceaux de données de tailles égales (dépend du nombre de noeuds Reduce).

Reduce: Applique un traitement de réduction à chaque liste de valeurs regroupées.

Write: Écrit le resultat du traitement dans le(s) fichier(s) résultats(s). On obtient autant de fichiers resultats que l’on a de noeuds de reduction.

Decouvrir ces documents

  • Cours sur le Framework Hadoop et les fouille de données enjeux et pratique

    Cours sur le Framework Hadoop et les fouille de données enjeux et pratique

  • Support de formation sur Apache Spark et Map Reduce méhtodes et pratique

    Support de formation sur Apache Spark et Map Reduce méhtodes et pratique

  • Démarrer avec les collections Framework de JAVA cours

    Démarrer avec les collections Framework de JAVA cours

  • Cours de programmation avec Java Collections Framework

    Cours de programmation avec Java Collections Framework

  • Guide de démarrage avec le Framework Apache HBase

    Guide de démarrage avec le Framework Apache HBase

  • Démarrer avec EHCACHE par la pratique

    Démarrer avec EHCACHE par la pratique

  • Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

    Manuel avancé sur l’utilisation du Framework JAVA apache Accumulo

  • Cours Java pour débuter avec le Framework Apache Nutch [Eng]

    Cours Java pour débuter avec le Framework Apache Nutch [Eng]

Articles connexes

  • Comment fonctionne la plateforme Hadoop pour gérer le big data
  • Tuto Python & Django : créer une page web
  • Exercice liste chainée générique JAVA - Structures de données abstraites
  • Comment devenir agent immobilier au Québec ?
  • 16 meilleurs IDE / EDI pour en Django Python (Comparatif)
  • Comment HDFS gère les fichiers distribués Hadoop ?
  • Java VS Python : Quel langage est le meilleur ?
  • Exercice opération sur les tableaux JAVA
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02