10
Dans ce tutorial, nous allons découvrir Hadoop au travers de son système de fichiers distribués et son mécanisme de Map/Reduce.
Hadoop est un projet Open Source écrit en java, distribué par la fondation Apache. Ce framework est adapté dans le stockage et le traitement par lots de très grandes quantités de données (à partir du pétaoctet). Il a été mis en avant par des grands noms du web comme Yahoo! ou Facebook.
Son système de fichiers HDFS permet de distribuer le stockage des données et de faire des analyses très performantes sur ces données grâce au modèle MapReduce permettant de distribuer une opération sur plusieurs nœuds dans le but de paralléliser leur exécution.
Le HDFS est le système de fichiers utilisé par Hadoop. C’est un système de fichiers distribués où les blocs d’informations sont répartis et répliqués sur les différents nÅ“uds du cluster. Cette réplication est configurable.
Pour plus d’informations sur l’architecture et la configuration du HDFS vous pouvez consultez la très bonne documentation de Hadoop: http://hadoop.apache.org/hdfs/

Il est important de savoir qu’un ensemble de commandes est mis à disposition pour interagir avec ce système.
Il suffit d’invoquer la commande: hadoop fs -<commande>. La syntaxe est très proche du shell et l’on retrouve les commandes standards( ls, cp, mv, rm, cat, tail ..)
Voici quelques exemples de commandes utiles:
L’ensemble des commandes est documenté ici: http://hadoop.apache.org/common/docs/r0.18.3/hdfs_shell.html
Ce fonctionnement consiste en deux étapes de traitement, chacune parallélisable sur un ensemble de nœuds : le Mapping et le Reducing.
Le Mapping est une fonction parallélisable dispatchée sur l’ensemble des noeuds d’un cluster. Elle s’applique à une liste fournie en entrée (input list fournie par le HDFS) et dont le résultat est mis à disposition dans une nouvelle liste (output list) stockée sur le HDFS.

Le Reducing est une fonction également dispatchable sur un ensemble de nœuds. Elle consiste à agréger les résulats sous forme clés/valeurs de la liste mise à disposition par la fonction de Mapping (output list).

Prenons un exemple pour illustrer ce mécanisme. Celui qui revient le plus souvent dans la littérature est le use case Word Count consistant à comptabiliser le nombre de mots contenus dans un fichier stocké dans le HDFS.
Etudions en détail les différentes étapes.
1- Stockage du fichier dans le HDFS:
Nous décidons d’envoyer un livre monLivre.txt dans le HDFS à l’emplacement input/books
Voici la commande: hadoop fs -put monLivre.txt hdfs://localhost:8022/input/books
>On peut voir sur le schéma que le fichier est découpé en blocs contenant chacun une partie du fichier et réparti sur un ensemble de nÅ“uds du cluster HDFS en fonction de la configuration.Â

2- Comptage des mots en Map Reduce:
L’opération de comptage des mots serait très longue si notre traitement se faisait directement sur le livre. L’interêt du Map Reduce est de paralleliser les traitement sur l’ensemble des noeuds du HDFS.
Dans le schéma ci-dessous, on peut voir les différentes étapes:
1 le fichier est découpé en différents blocs répartir sur les différents noeuds comme nous l’avons vu précédemment
2 le mapping consiste à envoyer le traitement de comptage sur chacun de ces blocs et d’effectuer le processing
3 le shuffling consiste à trier ces informations
4 le reducing est l’opération qui consiste à agréger les informations récupérée
Ce post a permis de vous donner un aperçu rapide du système de fichier distribué HDFS et du mécanisme de MapReduce.
Pour aller plus loin, je vous invite à jeter un oeil sur la documentation officielle de Hadoop:
HDFS: http://hadoop.apache.org/hdfs/docs/r0.21.0/
MapReduce: http://hadoop.apache.org/mapreduce/docs/r0.21.0/
Maintenant que vous maîtriser les concepts et s’il vous reste 5 minutes, rendez-vous ici pour pour voir comment monter monter un environnement en moins de 5 minutes: http://www.opensides.fr/2011/03/14/installer-hadoop-en-moins-de-5-minutes
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
tv online…
http://www.tv-online-live.com...