Académique Documents
Professionnel Documents
Culture Documents
Hadoop (HDFS)
Exemple d’application
Faire du Map mappers : diviser une tâche en des sous tâches traitées
d’une manière distribuée
Chaque préparateur à besoin de son système de stockage Système
distribué de stockage : hadoop hdfs
Besoin d’un cuisinier pour assembler les sous tâches et pour assembler
les composants : Reduce. Prendre les résultats en vue de fournir la
commande
Distribution de données et traitements
Le traitement d’aussi grandes quantités de données
des méthodes particulières. Un SGBD classique est
dans l’incapacité de traiter autant d’informations.
1. Répartir les données sur plusieurs machines ( des millions
d’ordinateurs) dans des Data Centers :
- Systèmes de fichiers spécial permettant de ne voir qu’un
seul espace pouvant contenir des fichiers gigantesques
ou très nombreux (HDFS)
- Bases de données spécifiques (Hbase, Cassandra…)
HDFS
Others Map
:SPARK Reduce
YARN
Mapreduce : gère les
ressources/faire des
traitements (Bach processing) YARN : gère les ressources des
clusters : attribution/gestion
des nœuds
Hadoop écosystème Stream Processing
•Apache storm
•Apache Spark
•Apache Kafka streams
Apache zookeeper :
Bach Processing
• Mapreduce
• SPARK
Apache zookeeper
• Gère la coordination entre
les noeuds
NOSQL
• Hbase
• Cassandra
PIG
HIVE
……
Hadoop (Storage)
Nœuds
( machines)
Cluster
Rack
Cluster
Nœuds ( machines) : un Rack: un ensemble de machine
ensemble de ressources ayant le même routeur
matérielles : CPU, RAM, HDD,
……
Hadoop (Storage)
Il est composé en deux parties :
- HDFS : responsable du stockage distribués
- Mapreduce/Yarn : responsable du traitement de données
Principe :
- Diviser les fichiers
- Les sauvegarder dans des collections de machines
(nœuds) : Cluster
- Traiter les données dans leurs emplacements.
Nœuds
( machines)
Rack
Cluster
Hadoop
Hadoop
Hadoop File System (HDFS)
HDFS est un système de fichiers distribués. C’est-à-dire :
Les fichiers et dossiers sont organisés en arbre (Comme
UNIX)
Ces fichiers sont stockés sur un grand nombre de machines
de manière à rendre invisible la position exacte d’un fichier.
Toutes les autres machines sont des datanodes. Elles stockent les
blocs du contenu des fichiers
Hadoop File System (HDFS)
Comme avec de nombreux systèmes, chaque fichier HDFS
est découpé en blocs de taille fixe. Un bloc HDFS = 64 Mo.
Selon la taille d’un fichier, il lui faudra un certain nombre de
blocs. Sur HDFS, le dernier bloc d’un fichier fait la taille
restante.
Les blocs d’un même fichier ne sont pas forcément tous sur
la même machine. Ils sont copiés chacun sur différentes
machines afin d’y accéder simultanément par plusieurs
processus. Par défaut, chaque bloc est copié sur 3 machines
différentes (c’est configurable).
Cette réplication des blocs sur plusieurs machines permet
aussi de se prémunir contre les pannes. Chaque fichier se
trouve donc en plusieurs exemplaires et à différents endroits.
Hadoop File System (HDFS)
Secondary DN6
NN
Hadoop File System (HDFS)
Avec cette architecture, on peut avoir les problèmes suivants :
- Panne du réseau : Perte temporaire d’accès au fichier
Sous la racine /, il y a :
Un répertoire pour déposer des fichiers à partager avec tous les utilisateurs
:/share
La lecture d’un fichier en HDFS est assez simple, et se résume sur figure suivante.
- Le code client commence par créer un objet local de la classe
DistributedFileSystem, qui agira comme un stub ou proxy avec le système de
fichier HDFS. Le code client s’adresse donc à cet objet local et demande à ouvrir
un fichier (étape 1, commande open).
- Le stub s’adresse alors au NameNode d’HDFS pour connaître l’emplacement des
réplicats de tous les blocs du fichier (étape 2a). Ensuite le stub crée un autre
objet local, de la classe FSDataInputStream (étape 2b), qui agira comme un
lecteur spécialisé dans la lecture du fichier visé, ayant connaissance des nœuds à
contacter.
- Le client fera alors des opérations read sur ce lecteur spécialisé (étape 3), qui ira
interroger un des noeuds stockant le premier bloc du fichier (étape 4). Une fois
le premier bloc lu, si les opérations de lecture continuent de la part du client, le
lecteur spécialisé ira interroger un nœud contenant le second bloc (étape 5) et
ainsi de suite.
- Finalement, le client demandera à fermer le fichier ouvert en lecture auprès du
lecteur spécialisé (étape 6, opération close). A noter que le lecteur spécialisé
vérifie l’intégrité des données lues (calculs de checksum) et signale toute
anomalie au stub, qui les retransmet au NameNode.
Hadoop (HDFS) : Opérations
Opération de lecture
Hadoop (HDFS) : Opérations
Opération de lecture
Hadoop dfs -get livre.txt livre.txt
Pour stocker le fichier livre.txt du HDFS dans le local