Introduction à HDFS

20

Click here to load reader

description

A l'occasion de Solution Linux 2013 nous présentons Hadoop à la communauté en France. Ici une introduction à HDFS.

Transcript of Introduction à HDFS

Page 1: Introduction à HDFS

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 à HDFSHadoop Distributed File System

Charly CLAIRMONTAltic - http://[email protected]@egwada

Page 2: Introduction à HDFS

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

Page 3: Introduction à HDFS

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!

Page 4: Introduction à HDFS

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

Page 5: Introduction à HDFS

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

Page 6: Introduction à HDFS

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

Page 7: Introduction à HDFS

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

Page 8: Introduction à HDFS

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

Page 9: Introduction à HDFS

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

Page 10: Introduction à HDFS

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

Page 11: Introduction à HDFS

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

Page 12: Introduction à HDFS

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)

Page 13: Introduction à HDFS

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

Page 14: Introduction à HDFS

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

Page 15: Introduction à HDFS

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

Page 16: Introduction à HDFS

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

Page 17: Introduction à HDFS

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

Page 18: Introduction à HDFS

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

Page 19: Introduction à HDFS

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

Page 20: Introduction à HDFS

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 CLAIRMONTAltic - http://[email protected]@egwada