Vous êtes sur la page 1sur 23

03/10/2023

Chapitre 2 :
HDFS (Hadoop
Distributed File System)

Pr. Btihal El Ghali

File Systems

• Le système utilisé pour lire d’un disque dur et écrire dessus.


• Ex:
Ø NTFS (Windows), Ext (Linux), Mac FS (Mac) – Standalone FS;
Ø HDFS - Distributed FS.
• Un système de fichier distribué s’installe au dessus d’un SF
standalone.

1
03/10/2023

File Systems

• Le système utilisé pour lire d’un disque dur et écrire dessus.


• Ex:
Ø NTFS (Windows), Ext (Linux), Mac FS (Mac) – Standalone FS;
Ø HDFS - Distributed FS.
• Un système de fichier distribué s’installe au dessus d’un SF
standalone.

Hadoop Distributed File System

• Le système de fichiers distribués Hadoop (HDFS) est basé sur le


système de fichiers Google (GFS).

• Il fournit un système de fichiers distribué conçu pour fonctionner


de manière fiable et tolérante aux pannes sur de grands groupes
de machines (jusqu’à des milliers d’ordinateurs).

• HDFS utilise une architecture maître/esclave où le maître est


constitué d’un seul NameNode qui gère les métadonnées du
système de fichiers et d’un ou plusieurs DataNodes esclaves qui
stockent les données réelles.
4

2
03/10/2023

Hadoop Distributed File System


Nodes

Master Node Slave Node

NameNode DataNode

Name Node (Master daemon)

• Le seul et unique NameNode du cluster. Il est au coeur du système


de fichiers HDFS. Il effectue les tâches suivantes :

ü Mappe un fichier avec son ensemble de blocs


ü Mappe un bloc avec les DataNodes où il réside
ü Moteur de réplication pour les blocs.

3
03/10/2023

Data Node (Slave daemon)

• Les DataNodes prennent en charge :


ü La lecture et écriture dans le système de fichiers,
ü Création de bloc,
ü Effacement,
ü Et réplication basée sur les instructions du NameNode.

Secondary NameNode

• Le NameNode secondaire :
ü Il ne peut pas remplacer le NameNode principal en cas d’échec.
ü Il effectue des points de contrôle périodiques. (CheckPoint)
ü En cas d’échec de NameNode, les administrateurs Hadoop
doivent récupérer manuellement les données du NameNode
secondaire.

4
03/10/2023

Hadoop Distributed File System (Jusqu’à Hadoop 1.x)

Standby NameNode

• Le NameNode en veille :
ü Hadoop 1.0 NameNode est à point unique d’échec (SOPF).
ü Seulement disponible dans Hadoop 2.0.
ü fournit un basculement automatique en cas d’échec du
NameNode actif.

10

5
03/10/2023

Battements de cœur (Heart Beats)

• Les dataNodes envoie un heartbeat


au NameNode

ü Une fois toutes les 3 secondes


• Le NameNode utilise les heartbeat
pour détecter les échecs des
DataNodes.

11

Les blocs et leurs réplications

• Les blocs de fichiers


ü Les données (fichiers) sont divisées en blocs
ü Blocs de 64 Mo par défaut Jusqu’à Hadoop 1.x
ü Blocs de 128 Mo par défaut depuis Hadoop 2.x

12

6
03/10/2023

Les réplications

• Les pannes sont tolérées grâce à la réplication des blocs sur le


HDFS :

ü Les blocs sont répliqués sur plusieurs nœuds (par défaut 3R),
ü Permet une défaillance de nœud sans perte de données.

13

Comment un fichier est stocké sur le HDFS?

Si on veut écrire un fichier sur le cluster Hadoop :

ü on peut envoyer la demande à travers un API client à partir de


n’importe quel nœud.

ü L’API client envoi les infos du fichier au NameNode (Exemple :


Write/1GB/nameF.txt)

ü Le NameNode génère la métadata (Nombre de blocs et de


répliques + Nodes à contenir les blocs avec le Ruck Awareness
Algo)

14

7
03/10/2023

Comment un fichier est stocké sur le HDFS?

Bloc 1

Bloc 1 Bloc 1
Un fichier Name
très Bloc 2
Node
grand
Bloc 3 Metadata : les
informations
Bloc 1 concernant les
fichiers et
blocs

15

Comment un fichier est stocké sur le HDFS?

Bloc 1

Bloc 1 Bloc 1
Un fichier Bloc 2
très Bloc 2
grand
Bloc 3
Bloc 2
Bloc 1

Bloc 2

16

8
03/10/2023

Comment un fichier est stocké sur le HDFS?

Bloc 1

Bloc 3

Bloc 1 Bloc 1
Un fichier Bloc 2
très Bloc 2
grand Bloc 3

Bloc 3
Bloc 2
Bloc 1
Bloc 3
Bloc 2

17

HDFS Configuration
HDFS Defaults

•• Block Size – 64 MB
• Replication Factor – 3
Web UI Port – 50070
HDFS conf file - /etc/hadoop/conf/hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data1/cloudera/dfs/nn,file:///data2/cloudera/dfs/nn</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>itracXXX.cern.ch:50070</value>
</property>

18

9
03/10/2023

Placement de bloc

• La stratégie actuelle :
ü Une réplique sur un nœud local,
ü la deuxième réplique sur un rack distant,
ü la troisième sur le même rack distant,
ü Des répliques supplémentaires sont placées au hasard
Rq: Les clients lisent à partir des répliques les plus proches.

19

Hadoop cluster - Exemple


Rack 1 Rack 2 Rack m

Node 1 Node 1 Node 1

Node 2 Node 2 Node 2

Node 3 Node 3 Node 3

Node 4 Node 4 Node 4

10
03/10/2023

Placement de bloc
Rack 1 Rack 2 Rack m

Name Node Bloc 1 Node 1 Bloc 3 Node 1

Fichier

Bloc 1 Bloc 1 Bloc 1 Bloc 2


Node 2 Node 2 Node 2

Bloc 2

Bloc 3 Bloc 3 Bloc 2


Node 3 Bloc 2 Node 3 Node 3

Bloc 3 Node 4 Node 4 Node 4

Placement de bloc : Rack Awareness Algorithm

• Comment le rack de réplication est choisi?


ü La bande passante réseau est calculé pour chaque cas,
ü La valeur minimale définira le rack de réplication.
• Pourquoi copier les deux réplicas sur le même rack?
ü Il y a une probabilité très minime que deux racks tombent en
défaillance au même temps,

ü Donc le cas optimal est de copier les deux réplicas dans le


même rack. 22

11
03/10/2023

Le stockage et la recherche de fichiers (read/write)


L’écriture sur le HDFS

23

Le stockage et la recherche de fichiers (reas/write)


L’écriture sur le HDFS

24

12
03/10/2023

Le stockage et la recherche de fichiers (reas/write)


L’écriture sur le HDFS – L’accusé de réception et d’écriture

25

Le stockage et la recherche de fichiers (reas/write)


L’écriture sur le HDFS – le cas de blocs multiple

26

13
03/10/2023

Le stockage et la recherche de fichiers (read/write)


la lecture à partir du HDFS

27

Le stockage et la recherche de fichiers (reas/write)


La lecture à partir du HDFS

28

14
03/10/2023

Types de pannes : Failure cases

Pannes temporaire :

ü Défaillance réseau
ü Défaillance logiciel
Pannes permanents :

ü Défaillance matérielle

29

Panne d’un nœud esclave

La défaillance d’un nœud esclave → une copie de bloc est perdue

ü Le client ne le saura jamais


ü Le nœud Master va chercher à corriger cela
ü Hadoop remplacera la copie perdue pour respecter le nombre
de réplique par le mécanisme automatique AF (Automatic
Failover = Basculement automatique)

ü Mise à jour des métadonnées des fichiers.


30

15
03/10/2023

Panne d’un nœud esclave

Si c’est une panne temporaire, alors lors de l’exécution de l’AF la


machine peut retourner en marche !!

Alors l’AF s’arrête et le stockage reste exploité par des blocs


non identifiés sur les métadonnées.

Recommandation :Supprimer le nœud tombé en panne et recréer un


autre dans tout les cas (défaillance temporaire ou permanente).

31

Panne d’un nœud maître

Les solutions :

ü Secondary NameNode (jusqu’à Hadoop 1.x)


ü Standby NameNode (Hadoop 2.x)
ü Passif NN – 1 ou plusieurs (Hadoop 2 with HA Cluster)
NB : HA = Hight Availability (Haute disponibilité)

32

16
03/10/2023

HA cluster

◎ Au moins deux
NameNodes;
◎ Au moins trois noeuds de
Zookeeper;
◎ Deux ou 3 Journal Nodes;
◎ Des nœuds esclaves
(DataNodes + Node
Manager).

33

Défaillance du nœud maître

ü Les PNN (Standby NN) reçoivent les heartbeats aussi;


ü Mais le ANN seul peut gérer les lectures/écritures;
En cas de défaillance du ANN :

ü Zookeeper (coordinateur) est le processus qui fait l’élection du


nouveau NN;

ü Les métadatas actualisés à la dernière information sont prises des


Journal Nodes.

34

17
03/10/2023

Interfaces d’accès au HDFS

• Java API (DistributedFileSystem)


• C wrapper (libhdfs)
• HTTP protocol
• WebDAV protocol
• Shell Commands

L'interface en ligne de commande est la plus simple et la plus


familière.

35

HDFS – Shell Commands

La commande ' Hadoop version' retourne la version de hadoop.


Il y a deux types de commandes :
• User Commands
hdfs dfs – runs filesystem commands on the HDFS
hdfs fsck – runs a HDFS filesystem checking command
Ex : hdfs fsck /
-pour vérifier les caractéristiques et la santé du système de fichiers
• Administration Commands
hdfs dfsadmin – runs HDFS administration commands
Pour voir les processus java s‘executant sur la machine :
$ jps – dans notre cas notre cluster est standalone une machine donc les
processus jouent le rôles des différents nodes.
36

18
03/10/2023

HDFS – User Commands (dfs)


Lister le contenue du HDFS
hdfs dfs –ls <arg>
Ex: hdfs dfs -ls /user/excode

Affiche l‘espace disque utilisé par les fichiers


hdfs dfs -du -h /
hdfs dfs -du -h /hbase/data/hbase/namespace/
hdfs dfs -du -s /hbase/data/hbase/namespace/

37

HDFS – User Commands (dfs)


Créer un dossier sur le HDFS et copier des données vers ce
dossier
hdfs dfs -mkdir hdata
hdfs dfs –ls
hdfs dfs -put data/file.txt hdata
hdfs dfs -copyFromLocal data/file.txt hdata
hdfs dfs -ls –R

Copier des données vers la machine local à partir du HDFS


cd data/
hdfs dfs –get hdata/file.txt file.txt.hdfs
hdfs dfs –copyToLocal hdata/file.txt file.txt.hdfs
md5sum file.txt file.txt.hdfs
38

19
03/10/2023

HDFS – User Commands (dfs)

Copier un fichier d‘un dossier à un autre dans HDFS


hdfs dfs -cp /hdata/file.txt /autreD
hdfs dfs –ls /autreD

Supprimer un fichier ou un dossier (le dossier si vide)


hdfs dfs -rm tdataset/tfile.txt
hdfs dfs -rm –r tdataset/tfile.txt
hdfs dfs -rmr tdataset/tfile.txt
hdfs dfs -ls –R

39

HDFS – User Commands

Afficher les statistiques d‘un fichier– (%r – le facteur de


réplication)
hdfs dfs -stat "%r" hdata/file.txt

Écrir sur un fichier déjà présent sur hdfs


echo "blah blah blah" | hdfs dfs -put - tdataset/tfile.txt
hdfs dfs -ls –R

Afficher le contenue du fichier dans le HDFS


hdfs dfs -cat tdataset/tfile.txt

40

20
03/10/2023

HDFS – User Commands (fsck)

Lister les blocs d‘un fichier et leurs locations


hdfs fsck /user/cloudera/tdata/geneva.csv -files
-blocks –locations

Afficher les blocs manquant et à quel fichier il appartiennent


hdfs fsck / -list -corruptfileblocks

41

HDFS – Adminstration Commands

Le rapport sur le statu du cluster HDFS


hdfs dfsadmin –report

Afficher l’arbre des racks et leurs nœuds


hdfs dfsadmin –printTopology

Avoir des informations sur un datanode spécifique (comme un


ping)
hdfs dfsadmin -getDatanodeInfo
localhost:50020

42

21
03/10/2023

HDFS – Advanced Commands

Lister les namenodes du cluster Hadoop


hdfs getconf –namenodes

En montant le HDFS toutes les opérations sur HDFS peuvent être réalisé
en utilisant les utilitaires standard Unix comme : 'ls', 'cd', 'cp', 'mkdir',
'find', 'grep’.

43

Hadoop Single Node Setup

◎ Sur Windows ou Mac, installer VirtualBox ou VMWare et créer une machine Ubuntu.

◎ Sur une machine Ubuntu suivre les étapes spécifié par la tuto suivante :
https://www.edureka.co/blog/install-hadoop-single-node-hadoop-cluster

44

22
03/10/2023

45

23

Vous aimerez peut-être aussi