Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Introduction à HDFS
1. 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
2. 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
3. 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!
4. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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...
11. 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
12. 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)
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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.)
19. 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
20. 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