INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
SOMMAIRE
I. GENERALITES SUR HADOOP .................................................................................................................. 2
II. ARCHITECTURE LOGIQUE D’HADOOP .................................................................................................. 4
III. ETAPES D’INSTALLATION D HADOOP ................................................................................................... 7
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
I. GENERALITES SUR HADOOP
1. Qu'est-ce que Hadoop ?
Apache Hadoop est un Framework open source développée par la Fondation Apache. Il
permet de stocker et traiter de très grandes quantités de données (Big Data) de manière
distribuée sur un cluster de serveurs.
Il a été conçu pour être :
➢ Scalable (extensible) : on peut facilement ajouter de nouveaux nœuds.
➢ Fault-tolerant (tolérant aux pannes) : les données sont dupliquées, donc pas de
perte si un nœud tombe.
➢ Flexible : il peut traiter des données structurées, semi-structurées ou non
structurées.
2. Les composants principaux de Hadoop
1. HDFS (Hadoop Distributed File System) o Système de fichiers
distribué.
o Stocke les données sur plusieurs machines.
o Divise les fichiers en blocs (par défaut 128 Mo ou 256 Mo) et les réplique
(souvent 3 copies).
2. YARN (Yet Another Resource Negotiator) o Gère les ressources
du cluster.
o Planifie et supervise l’exécution des tâches.
3. MapReduce
o Modèle de programmation pour le traitement parallèle des données.
o Divisé en deux étapes :
▪ Map : traite et transforme les données.
▪ Reduce : agrège les résultats.
4. Hadoop Common
o Contient les bibliothèques et utilitaires partagés par les autres modules.
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
3. Fonctionnement de Hadoop
1. Les données sont chargées dans HDFS.
2. Une tâche MapReduce est lancée via YARN.
3. Les données sont traitées localement sur les nœuds où elles sont stockées.
4. Les résultats sont agrégés et renvoyés à l'utilisateur ou stockés dans HDFS.
Écosystème Hadoop
Hadoop est souvent utilisé avec d'autres outils, comme :
• Hive : requêtes de type SQL sur des données dans HDFS.
• Pig : langage de script pour le traitement de données.
• HBase : base NoSQL sur HDFS.
• Sqoop : import/export de données entre bases de données relationnelles et Hadoop.
• Flume : collecte de données en temps réel.
• Spark : alternative plus rapide à MapReduce pour le traitement de données.
4. Avantages de Hadoop
• Open source et gratuit.
• Adapté aux très grands volumes de données.
• Haute tolérance aux pannes.
• Flexibilité dans le type de données traitées.
5. Limites de Hadoop
• MapReduce est parfois lent pour les traitements interactifs ou en temps réel.
• Complexité de mise en œuvre et de gestion.
• Consommation de ressources importante.
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
II. ARCHITECTURE LOGIQUE D’HADOOP
L’architecture de Hadoop se divise en deux grandes couches principales :
1. Stockage distribué : HDFS (Hadoop Distributed File System) 2. Traitement distribué :
YARN + MapReduce
| Applications |
| (Pig, Hive, Spark, etc.)|
+-----------+------------+
|
+----------v-----------+
| ResourceManager | <== YARN
+----------+-----------+
|
|
+---------v--------+ +----------v---------+
| NodeManager | | NodeManager |
| (gère tâches) | | (gère tâches) |
+--------+---------+ +----------+----------+
| |
+--------v--------+ +--------v--------+
| DataNode | | DataNode |
| (stockage HDFS) | | (stockage HDFS) |
+-----------------+ +-----------------+
↑
+---------+----------+
| NameNode |
| (gère les métadonnées HDFS) |
+--------------------+
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
Explications des composants
1. HDFS (Hadoop Distributed File System) – couche de stockage
• NameNode (maître) :
o Gère les métadonnées : structure des fichiers, emplacement des blocs. o
Ne stocke pas les données elles-mêmes.
o Point critique du système (il doit être sauvegardé).
• DataNode (esclaves) :
o Stockent les blocs de données réels.
o Envoient régulièrement un heartbeat au NameNode pour signaler qu’ils sont
actifs.
o Répliquent les blocs selon la politique de réplication (souvent 3 copies).
2. YARN (Yet Another Resource Negotiator) – couche de traitement
• ResourceManager (maître) :
o Gère les ressources globales du cluster.
o Planifie et attribue les tâches aux nœuds disponibles.
• NodeManager (esclaves) :
o Exécute les tâches assignées.
o Supervise l'utilisation locale des ressources (mémoire, CPU).
3. MapReduce (moteur de traitement)
• S’exécute sur YARN.
• Se décompose en deux phases :
o Map : divise les données en paires clé/valeur pour traitement.
o Reduce : regroupe les résultats du Map et les agrège.
• Le traitement est parallèle et proche des données (data locality).
4. Outils en haut de la pile (clients)
• Pig : langage de scripts pour transformer les données.
• Hive : interface SQL pour interroger les données.
• Spark : moteur de traitement alternatif plus rapide.
• Oozie, Sqoop, Flume : orchestration, import/export, ingestion.
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
Résumé des flux de données
1. Données chargées dans HDFS → stockées en blocs sur plusieurs DataNodes.
2. Job soumis à Hadoop → le ResourceManager planifie le traitement.
3. Le traitement s'exécute en parallèle sur les NodeManagers.
Résultats éventuellement enregistrés dans HDFS ou renvoyés à l’utilisateur.
Comparaison d’Hadoop avec d’autres solutions Big Data
Critère Hadoop (avec Apache Apache Google Amazon EMR
MapReduce) Spark Flink BigQuery
Type de Framework Moteur de Traitement Solution cloud Service
projet open source traitement de flux et d’analyse de managé
de traitement distribué in- batch unifié données Hadoop/Spark
distribué memory massives sur AWS
(PaaS)
Traitement Batch Batch & Streaming SQL-like, Batch &
(MapReduce) Streaming natif (temps batch streaming
(plus réel) &
rapide) batch
Performance Moins rapide Très rapide Temps réel, Très rapide, Dépend des
(traitement (traitement très selon usage ressources
disque) en performant cloud AWS allouées
mémoire)
Tolérance Oui (via HDFS Oui (RDD Oui Géré par Géré par AWS
aux pannes et YARN) résilients) (stateful Google
streaming)
Scalabilité Horizontale Horizontale Horizontale Très haute Très haute
(scalabilité
automatique)
Facilité Complexe API simples API Très simple Intégration
d’utilisation (MapReduce (Scala, modernes (requêtes facile avec
en Java) Python, (Java, Scala) SQL) AWS
SQL)
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
Stockage HDFS Non (utilise Non (utilise Cloud Storage S3, HDFS
intégré HDFS, S3, sources intégré
etc.) externes)
Cas d’usage Traitement Machine Streaming BI, analyse de Traitement Big
typiques batch Learning, temps réel, logs, Data dans le
volumineux traitements détection requêtes cloud
itératifs, d’anomalies rapides
interactifs
Déploiement Sur site ou Sur site ou Sur site ou Cloud Cloud
cloud cloud cloud uniquement uniquement
(Google) (AWS)
Pour récapituler :
• Apache Spark est souvent préféré à Hadoop MapReduce pour sa vitesse et sa
flexibilité, tout en pouvant utiliser HDFS.
• Apache Flink est idéal pour des traitements en temps réel, contrairement à Hadoop
qui est orienté batch.
• BigQuery est une solution gérée dans le cloud, excellente pour les analyses massives
sans gestion d’infrastructure.
• Amazon EMR permet d'exécuter des tâches Hadoop, Spark, etc. dans le cloud AWS,
avec gestion automatique.
III. ETAPES D’INSTALLATION D HADOOP
Pour installer quoi que ce soit il faut au préalable faire une mise à jour du système, en
tapant la commande : sudo apt update.
1. Se connecter en mode ROOT et installer JAVA
Apt-get install default-jdk default-jre -y
2. Vérifier la version de JAVA
JAVA -version
3. On va maintenant créer l’utilisateur HADOOP (adduser hadoop ; password :doop).
Maintenant on va se connecter à l’utilisateur hadoop (su - hadoop)
4. On va générer la clé SSH : ssh-keygen -t rsa. Lorsque vous taper cette commande, vous
continuez en appuyant la touche entrée jusqu’ à la génération de la clé.
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
5. Donner la permission au fichier authorized_keys cat ~/.ssh/id_rsa.pub >>
~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
6. Vérifier la connexion ssh sans mot de passe :ssh server’s_ip_address
7. Télécharger la dernière version d hadoop wget
https://dlcdn.apache.org/hadoop/common/hadoop-3.4.0/hadoop-3.3.6.tar.gz
On va décompresser le fichier téléchargé : tar -xvzf hadoop-3.3.0.tar.gz
8. On se connecte sur root, puis déplacer le fichier extrait dans un répertoire spécifique
mv hadoop-3.3.0 hadoop
9. Ensuite, changez la propriété du répertoire hadoop en hadoop :
sudo chown -R hduser_:hadoop_ hadoop
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
Part 2) Configure Hadoop
1. Modifier le fichier ~/.bashrc file
Ajouter les lignes suivante dans le fichier ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop export
HADOOP_INSTALL=$HADOOP_HOME export
HADOOP_MAPRED_HOME=$HADOOP_HOME export
HADOOP_COMMON_HOME=$HADOOP_HOME export
HADOOP_HDFS_HOME=$HADOOP_HOME export
YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export
HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
2. Modifier le fichier hadoop-env.sh
3. Modifier le fichier /usr/local/hadoop/etc/hadoop/hadoop-core.site.xml
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
4. Modifier le fichier /etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/home/hdoop/dfsdata/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hdoop/dfsdata/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
5. Modifier le fichier /etc/hadoop/mapred-site.xml
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
6. Modifier le fichier /etc/hadoop/yarn-site.xml
Formater le HDFS NameNode hdfs
namenode -format
INSTALLATION ET CONFIGURATION D’HADOOP SUR UBUNTU
Démarrer Hadoop Cluster
./start-dfs.sh et ./start-yarn.sh
Ensuite taper Jps
Démarrage de Namenode
/usr/local/hadoop/sbin/start-dfs.sh
Puis vérifiez avec : jps
Access Hadoop from Browser
http://localhost:9870
http://localhost:9864
http://localhost:8088