Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation
Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HUG France SL2013 – Mai 2013
Introduction à HDFS
Hadoop Distributed File System
Charly CLAIRMONT
Altic - http://altic.org
charly.clairmont@altic.org
@egwada
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Pourquoi Hadoop ?
● Traiter de larges jeux de données
● Tolérance à la panne
● les machines sont faillibles
● et pour Hadoop ce n'est pas une exception
● Il coûte très cher d'incorporer la fiabilité au sein
de chaque application
● Efficace même sur une infrastructure commode
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Un peu d'histoire
● Dec 2004 – Google publie ses papier GFS, MR
● Juil 2005 – Nutch utilise une implémentation de MapReduce
● Jan 2006 – Doug Cutting rejoint Yahoo!
● Fév 2006 – Hadoop devient un nouveau sous-projet de Lucene (Moteur de
recherche)
● Avr 2007 – Yahoo! exploite un cluster Hadoop de 1000 nœuds
● Jan 2008 – Hadoop devient un "Apache Top Level Project"
● Fev 2008 – Yahoo! utilise Hadoop pour calculer les index de son moteur de
recherche en production
● Juil 2008 – un cluster de 4 000 nœuds
● ...
● Jiun 2011 – 40 000 nœuds Hadoop chez Yahoo!
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Hadoop une boîte à outil à tout faire
● Recherche
– Yahoo, Amazon, Zvents,
● Traitement de logs
– Facebook, Yahoo, ContextWeb. Joost, Last.fm
● Système de recommandation
– Facebook, Amazon
● Data Warehouse
– Facebook, AOL, HSBC, Crédit Mutuel
● Traitement de documents, d'images, de Videos
– New York Times, Eyealike
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Infrastructure « commode »
● Architecture typique sur 2 niveaux
● machines commodes
● 30 à 40 noeuds par racks
● Liens entre les rack de 3 à 4 Go
● liens interne au rack 1Go
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HDFS, pourquoi ?
● Système de fichiers large et distribué
● 10K nœuds, 100 millions de fichier, 10 Po
– Ou moins !
– Voire bien plus !
● Sait fonctionner au dessus de machines commodes
● Réplication de fichiers pour prévenir les pannes
● Détection des échecs, et reprendre à partir d'eux
● Optimisé pour les traitements par lots (plus pour longtemps)
● Emplacements des données connus
– les programmes peuvent y être déplacés
● taille de la bande passante réduite
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Système de fichiers distribué
● Un seul espace de nom pour tout le cluster
● Cohérence de la donnée
● Écrire une fois pour d'un nombreux accès
● les applications clientes ont seulement la possibilité d'ajouter de la
données
● Fichiers découpés en blocs
● généralement en bloc de 128 Mo
● blocs répliqués sur de multiples nœuds
● API intelligente
● Possibilité de rechercher les emplacements des blocs
● Possibilité d'accéder directement aux données depuis le DataNode
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HDFS Architecture
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Fonction du NameNode
● Gestion du système de fichiers
● Association entre fichiers et blocs de données
● Association entre blocs et emplacements sur
les DataNodes
● Configuration de la gestion du cluster
● Moteur de réplication des blocs
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Metadonnées du NameNode
● Métadonnées en mémoire
● Toutes les métadonnées sont montées en mémoire
● Aucune pagination des métadonnées du système de fichier
● Type de Métadonnées
● liste des fichiers
● liste des blocs pour chaque fichier
● liste des DataNodes pour chaque bloc
● attributs de fichier, dernier accès, facteur de réplication
● Transactions
● enregistre les créations de fichiers, leurs suppressions...
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
DataNode
● Un serveur de bloc
● Stocke les données en local sur le système de fichier
(ext3)
● Stocke les métadonnées des blocs (CRC)
● Fournit les métadonnées et des données aux Clients
● Rapport des blocs
● Régulièrement envoie un rapport des blocs au
NameNode
● Facilite l'échange des données entre noeuds
● Transmet les données vers d'autres DataNodes
spécifiés
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Placement des blocs
● Stratégie actuelle
● Un répliqua sur un noeud aléatoire dans le rack
local
● Second répliqua sur un un rack distant
● Troisième répliqua sur le même un rack distant
● Répliqua additionnel placé alléatoirement
● Clients lisent depuis le réplica le plus proche
● Évolution
● Rendre ce placement extensible (plugable)
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Moteur de réplication
● Le NameNode détecte les failles des DataNodes
● Désigne des DataNodes pour les nouveaux répliquas
● Gestion de la charge
● utilisation des disques
● utilisation du réseau
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Des données exactes
● Checksums pour valider les données
● CRC32
● Création des fichiers
● Calcul d'un checksum pour des paquets de 512 octets
● Les DataNodes stockent le checksum
● Accès au fichier
● Récupération du fichier et du checksum depuis le
DataNode
● Si le checksum est invalide récupération d'un autre
répliqua
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Faille du NameNode
● Talon d'Achille du système
● Transactions stockées dans plusieurs dossiers
● répertoire local
● répertoire distant (NFS / CIFS)
● disques en RAID
● « HA Solution »
● Virtualisation du NameNode
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Flux d'écriture d'un fichier dans HDFS
● Lister les DataNodes où seront placés les
répliquas des blocs
● Ecrire le bloc sur le 1er DataNode
● Le 1er DataNode fournit les données au
DataNode suivant de la liste
● Quand tous les répliquas du bloc sont inscrits,
on passe au bloc suivant pour le fichier
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Secondary NameNode
● copie FsImage and Transactions depuis le
NameNode vers répertoire temporaire
● Merge le FsImage et Transactions vers des
nouveaux
● Transfert le nouveau FsImage vers le
NameNode
● Suppression des traces des Transactions du
NameNode
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Quelques commandes pour HDFS
Il y a près de 30 commandes pour manipuler les fichiers en HDFS :
-cat : affiche le contenu d'un fichier
-text : comme cat mais sait afficher des données compressées
-chgrp,-chmod,-chown : modification des permissions
-put,-get,-copyFromLocal,-copyToLocal : import / export entre le
système de fichier local et HDFS
-ls, -lsr : liste les fichiers / répertoires
-mv,-moveFromLocal,-moveToLocal : déplace les fichiers
-stat : informations statistiques sur les ressources (taille des blocs,
nombre de blocs, type de fichiers, etc.)
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale
- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Quelques commandes pour HDFS
$ hadoop fs –ls /user/brian/
$ hadoop fs -lsr
$ hadoop fs –mkdir notes
$ hadoop fs –put ~/training/commands.txt notes
$ hadoop fs –chmod 777 notes/commands.txt
$ hadoop fs –cat notes/commands.txt | more
$ hadoop fs –rm notes/*.txt
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation
Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HUG France SL2013 – Mai 2013
Introduction à HDFS
Merci !
Charly CLAIRMONT
Altic - http://altic.org
charly.clairmont@altic.org
@egwada

Introduction à HDFS

  • 1.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ HUG France SL2013 – Mai 2013 Introduction à HDFS Hadoop Distributed File System Charly CLAIRMONT Altic - http://altic.org charly.clairmont@altic.org @egwada
  • 2.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Pourquoi Hadoop ? ● Traiter de larges jeux de données ● Tolérance à la panne ● les machines sont faillibles ● et pour Hadoop ce n'est pas une exception ● Il coûte très cher d'incorporer la fiabilité au sein de chaque application ● Efficace même sur une infrastructure commode
  • 3.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Un peu d'histoire ● Dec 2004 – Google publie ses papier GFS, MR ● Juil 2005 – Nutch utilise une implémentation de MapReduce ● Jan 2006 – Doug Cutting rejoint Yahoo! ● Fév 2006 – Hadoop devient un nouveau sous-projet de Lucene (Moteur de recherche) ● Avr 2007 – Yahoo! exploite un cluster Hadoop de 1000 nœuds ● Jan 2008 – Hadoop devient un "Apache Top Level Project" ● Fev 2008 – Yahoo! utilise Hadoop pour calculer les index de son moteur de recherche en production ● Juil 2008 – un cluster de 4 000 nœuds ● ... ● Jiun 2011 – 40 000 nœuds Hadoop chez Yahoo!
  • 4.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Hadoop une boîte à outil à tout faire ● Recherche – Yahoo, Amazon, Zvents, ● Traitement de logs – Facebook, Yahoo, ContextWeb. Joost, Last.fm ● Système de recommandation – Facebook, Amazon ● Data Warehouse – Facebook, AOL, HSBC, Crédit Mutuel ● Traitement de documents, d'images, de Videos – New York Times, Eyealike
  • 5.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Infrastructure « commode » ● Architecture typique sur 2 niveaux ● machines commodes ● 30 à 40 noeuds par racks ● Liens entre les rack de 3 à 4 Go ● liens interne au rack 1Go
  • 6.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ HDFS, pourquoi ? ● Système de fichiers large et distribué ● 10K nœuds, 100 millions de fichier, 10 Po – Ou moins ! – Voire bien plus ! ● Sait fonctionner au dessus de machines commodes ● Réplication de fichiers pour prévenir les pannes ● Détection des échecs, et reprendre à partir d'eux ● Optimisé pour les traitements par lots (plus pour longtemps) ● Emplacements des données connus – les programmes peuvent y être déplacés ● taille de la bande passante réduite
  • 7.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Système de fichiers distribué ● Un seul espace de nom pour tout le cluster ● Cohérence de la donnée ● Écrire une fois pour d'un nombreux accès ● les applications clientes ont seulement la possibilité d'ajouter de la données ● Fichiers découpés en blocs ● généralement en bloc de 128 Mo ● blocs répliqués sur de multiples nœuds ● API intelligente ● Possibilité de rechercher les emplacements des blocs ● Possibilité d'accéder directement aux données depuis le DataNode
  • 8.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ HDFS Architecture
  • 9.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Fonction du NameNode ● Gestion du système de fichiers ● Association entre fichiers et blocs de données ● Association entre blocs et emplacements sur les DataNodes ● Configuration de la gestion du cluster ● Moteur de réplication des blocs
  • 10.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Metadonnées du NameNode ● Métadonnées en mémoire ● Toutes les métadonnées sont montées en mémoire ● Aucune pagination des métadonnées du système de fichier ● Type de Métadonnées ● liste des fichiers ● liste des blocs pour chaque fichier ● liste des DataNodes pour chaque bloc ● attributs de fichier, dernier accès, facteur de réplication ● Transactions ● enregistre les créations de fichiers, leurs suppressions...
  • 11.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ DataNode ● Un serveur de bloc ● Stocke les données en local sur le système de fichier (ext3) ● Stocke les métadonnées des blocs (CRC) ● Fournit les métadonnées et des données aux Clients ● Rapport des blocs ● Régulièrement envoie un rapport des blocs au NameNode ● Facilite l'échange des données entre noeuds ● Transmet les données vers d'autres DataNodes spécifiés
  • 12.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Placement des blocs ● Stratégie actuelle ● Un répliqua sur un noeud aléatoire dans le rack local ● Second répliqua sur un un rack distant ● Troisième répliqua sur le même un rack distant ● Répliqua additionnel placé alléatoirement ● Clients lisent depuis le réplica le plus proche ● Évolution ● Rendre ce placement extensible (plugable)
  • 13.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Moteur de réplication ● Le NameNode détecte les failles des DataNodes ● Désigne des DataNodes pour les nouveaux répliquas ● Gestion de la charge ● utilisation des disques ● utilisation du réseau
  • 14.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Des données exactes ● Checksums pour valider les données ● CRC32 ● Création des fichiers ● Calcul d'un checksum pour des paquets de 512 octets ● Les DataNodes stockent le checksum ● Accès au fichier ● Récupération du fichier et du checksum depuis le DataNode ● Si le checksum est invalide récupération d'un autre répliqua
  • 15.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Faille du NameNode ● Talon d'Achille du système ● Transactions stockées dans plusieurs dossiers ● répertoire local ● répertoire distant (NFS / CIFS) ● disques en RAID ● « HA Solution » ● Virtualisation du NameNode
  • 16.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Flux d'écriture d'un fichier dans HDFS ● Lister les DataNodes où seront placés les répliquas des blocs ● Ecrire le bloc sur le 1er DataNode ● Le 1er DataNode fournit les données au DataNode suivant de la liste ● Quand tous les répliquas du bloc sont inscrits, on passe au bloc suivant pour le fichier
  • 17.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Secondary NameNode ● copie FsImage and Transactions depuis le NameNode vers répertoire temporaire ● Merge le FsImage et Transactions vers des nouveaux ● Transfert le nouveau FsImage vers le NameNode ● Suppression des traces des Transactions du NameNode
  • 18.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Quelques commandes pour HDFS Il y a près de 30 commandes pour manipuler les fichiers en HDFS : -cat : affiche le contenu d'un fichier -text : comme cat mais sait afficher des données compressées -chgrp,-chmod,-chown : modification des permissions -put,-get,-copyFromLocal,-copyToLocal : import / export entre le système de fichier local et HDFS -ls, -lsr : liste les fichiers / répertoires -mv,-moveFromLocal,-moveToLocal : déplace les fichiers -stat : informations statistiques sur les ressources (taille des blocs, nombre de blocs, type de fichiers, etc.)
  • 19.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Quelques commandes pour HDFS $ hadoop fs –ls /user/brian/ $ hadoop fs -lsr $ hadoop fs –mkdir notes $ hadoop fs –put ~/training/commands.txt notes $ hadoop fs –chmod 777 notes/commands.txt $ hadoop fs –cat notes/commands.txt | more $ hadoop fs –rm notes/*.txt
  • 20.
    Ce support estmis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ HUG France SL2013 – Mai 2013 Introduction à HDFS Merci ! Charly CLAIRMONT Altic - http://altic.org charly.clairmont@altic.org @egwada