Apache Hadoop
Framework open source pour le traitement distribué de
quantité massive de données sur des clusters de
machines à l’aide de modèles de programmation simples
Conçu par Doug cutting en 2004 inspiré par les
publications Mapreduce, GoogleFS et bigtable de Google
Apache Hadoop Ecrit en java
35
36
Apache Hadoop: caractéristiques Apache Hadoop
Tolèrent aux pannes: la défaillance d’un nœud ne provoque Hadoop se compose de deux principaux sous projets:
pas l’échec de calcul MapReduce: un mécanisme d’exécution parallèle de
Evolutif (Scalable): milliers de machines programmes
Système de fichiers distribué Hadoop (aka. HDFS) :
Performant: support du traitement de données massive (To,
répartit les données sur de nombreuses machines
Po)
Principe:
Parallélisme de données: meme traitement appliqué sur
Diviser les données sur une collection de machines (cluster)
toutes les données
Traiter les données directement là où elles sont stockées
Economie: matériel standard Possibilité d’ajouter des machines
Dispose d'un vaste écosystème (HBase / ZooKeeper / Avro /
etc.)
37 38
Hadoop Distributed File System (HDFS) Organisation des machines pour HDFS
Un cluster HDFS est constitué de machines jouant différents
rôles exclusifs entre eux :
HDFS est un système de fichiers distribué: Un maître appelé namenode: Gérer l’état du système de
les fichiers et dossiers sont organisés en arbre fichiers.
(comme Unix) contient tous les noms et blocs des fichiers, (annuaire)
les fichiers sont stockés sur un grand nombre Une machine secondary namenode, : (namenode de
secours) enregistre des sauvegardes de l’annuaire à
de machines de manière transparente pour intervalles réguliers.
l’utilisateur. (un seul arbre) Toutes les autres machines sont des datanodes. Elles
les fichiers sont décomposés en grands blocs stockent les blocs du contenu des fichiers.
(64 MO par défaut, 128 jusqu’à 1GO)
dupliquée pour la fiabilité sur plusieurs
machine
• 3 machines (nombre configurable)
39 40
HDFS rack awareness High availability
Rack : ensemble de DataNodes connectés à l'aide du même switch DataNodes envoie en continu des messages de « heartbeat » au
réseau. namenode après une durée déterminée ( 3 secondes par défaut).
Rack awareness : mécanisme de tolérance aux pannes consiste à Si le namenode ne recoit pas de retour, le datanode est considéré
placer les répliques sur des racks différents. comme étant « dead »
Éviter la perte de données en cas de panne d'un rack entier Quand un utilisateur demande à accéder à ses données, le NameNode
permet d'utiliser la bande passante de plusieurs racks lors de la lecture fournit l'adresse IP du DataNode le plus proche.
des données.
41 42
Configuration hadoop Commandes HDFS dfs
Plusieurs fichiers de configuration
[Link] : indique l'host et le port du Namenode.
La commande hdfs dfs et ses options permet de gérer
les fichiers
et dossiers :
hdfs dfs -help
hdfs dfs -ls [noms...] (pas d’option -l)
[Link] : Configurations du NameNode/dataNode(taille de hdfs dfs -cat nom
block, le chemin du namespace et fichiers logs)
hdfs dfs -mv ancien nouveau
hdfs dfs -cp ancien nouveau
hdfs dfs -mkdir dossier
hdfs dfs -rm -f -r dossier
43 44
[Link]
Échanges entre HDFS et le monde
Pour placer un fichier dans HDFS:
hdfs dfs -copyFromLocal fichiersrc fichierdst
hdfs dfs -put fichiersrc [fichierdst]
Pour extraire un fichier de HDFS:
hdfs dfs -copyToLocal fichiersrc dst
hdfs dfs -get fichiersrc [fichierdst]
Exemple
hdfs dfs -mkdir -p livres
wget [Link]
hdfs dfs -put [Link] livres
hdfs dfs -ls livres
hdfs dfs -get livres/center_earth
45