pic
Dans un précédent post, nous avions vu les grands concepts d’Hadoop (cf. http://www.opensides.fr/2011/03/10/hadoop-en-moins-de-5-minutes).  Aujourd'hui nous allons consacrer 5 nouvelles minutes avec Hadoop pour passer à la pratique. Les objectifs: Monter un environnement opérationnel en moins de 2 minutes Tour d'horizon de Cloudera en 1 minute Tester quelques commandes HDFS en 1 minute Tester un Map Reduce en 1 minute Monter un environnement opérationnel en 2 minutes 30 secondes pour parler de Cloudera Apache distribue une version packagée de l'écosystème complet Had...
pic
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. Objectifs Comprendre les grands concepts de Hadoop Comprendre le HDFS et le mécanisme de Map/Reduce 2 minutes 30 pour comprendre les grands concepts 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 sys...
pic
Dans cet article nous allons faire la connaissance rapide des serveurs web asynchrones. Le but de ce post est de vous faire découvrir cette nouvelle génération de serveur en montrant comment installer et configurer de façon basique celui qui me semble le plus aboutit et le plus performant. Nous verrons plus tard tirer profit de ce type d'architecture pour servir de hautes volumétries. Quelques rappels Un serveur http a pour vocation de servir du contenu en fonction des requêtes clientes. Ce contenu est distribué via le protocole http et peut être statique (images, css, javascript, â€...
pic
Tout le monde connaît Memcached ? Non ? Memcached est un cache Open Source distribué et non répliqué. Cela veut dire que que nous pouvons utiliser plusieurs instances de Memcached mais que chaque instance est autonome. Si l'une d'elle tombe, ses données seront donc perdues (pas de réplication entre instance). Pour aller plus loin, je vous conseille le wiki de Memcached: http://memcached.org/ Nous allons voir maintenant comment l'installer sur un unix: Installation de libEvent (une dépendance de Memcached) Vérifier que libEvent ne soit pas déja installé en tapant la ...
pic
Dans cet article nous allons voir comment apporter très facilement une solution de haute disponibilité à une application avec HAProxy. Quelques définitions Haute disponibilité (cf. wikipedia) La haute disponibilité est un terme souvent utilisé en informatique, à propos d'architecture de système ou d'un service pour désigner le fait que cette architecture ou ce service a un taux de disponibilité convenable. La disponibilité est aujourd'hui un enjeu important des infrastructures informatiques. On estime aujourd'hui que la non-disponibilité d'un service informatique peut avoi...
mar

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.

Objectifs

  • Comprendre les grands concepts de Hadoop
  • Comprendre le HDFS et le mécanisme de Map/Reduce

2 minutes 30 pour comprendre les grands concepts

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

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:

  • Upload un fichier dans le file système: hadoop fs -put logs/ hdfs://localhost:8022/input
  • Download un fichier à partir du file système: hadoop fs -get hdfs://localhost:8022/input logs/
  • Parcourir le HDFS: hadoop fs -ls hdfs://localhost:8022/input

L’ensemble des commandes est documenté ici: http://hadoop.apache.org/common/docs/r0.18.3/hdfs_shell.html

Le Map Reduce

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).

2 minutes 30 pour comprendre un cas pratique

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

Conclusion

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


One Response

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.

Leave a Reply