Comment déployer Hadoop ?
Hadoop peut être déployé de 3 façons selon vos besoins : du simple test sur laptop jusqu'au cluster de centaines de machines en production.
Les 3 modes Installation Quiz1 Les 3 Modes de Déploiement
Mode Local
Standalone ModeHadoop s'exécute dans un seul processus JVM. Pas de HDFS, pas de YARN. Tout tourne sur le filesystem local. C'est le mode par défaut après décompression.
Avantages
- Installation immédiate, zéro configuration réseau
- Debug facile avec un IDE (IntelliJ, Eclipse)
- Idéal pour développer des jobs MapReduce
- Fonctionne sur n'importe quel PC/Mac
Limitations
- Pas de distribution réelle des données
- Pas de tolérance aux pannes
- Non représentatif d'un vrai cluster
Processus : 1 seul JVM
RAM min : 4 GB
Mode Pseudo-Distribué
Pseudo-DistributedHadoop tourne sur une seule machine, mais chaque daemon (NameNode, DataNode, YARN…) s'exécute dans son propre processus JVM séparé. HDFS est actif, mais sur un seul nœud.
Avantages
- Simule un vrai cluster sur 1 machine
- HDFS actif avec réplication ×1
- YARN opérationnel pour les jobs
- Testable sur VM ou laptop (8 GB RAM)
- Parfait pour apprendre et expérimenter
Limitations
- Pas de vraie distribution (1 machine)
- Réplication ×1 uniquement (pas de HA)
Processus : 5 JVMs séparés
RAM min : 8 GB
Mode Totalement Distribué
Fully DistributedHadoop tourne sur un vrai cluster de plusieurs machines physiques ou VMs. Chaque nœud a un rôle défini. C'est le seul mode utilisé en production.
Avantages
- Vraie scalabilité horizontale
- Tolérance aux pannes réelle (réplication ×3)
- Performance Big Data (PB+)
- Haute disponibilité (NameNode HA)
Limitations
- Configuration complexe (réseau, SSH, DNS)
- Nécessite plusieurs machines ou VMs
Processus : 5+ daemons par nœud
RAM min : 16 GB+/nœud
Tableau comparatif des 3 modes
| Critère | Mode Local | Pseudo-Distribué ⭐ | Totalement Distribué |
|---|---|---|---|
| Machines nécessaires | 1 (ordinateur) | 1 (ordinateur) | 3+ (cluster) |
| HDFS actif ? | Non | Oui (local) | Oui (distribué) |
| YARN actif ? | Non | Oui | Oui |
| Réplication HDFS | N/A | ×1 | ×3 (défaut) |
| Tolérance aux pannes | Aucune | Partielle | Complète |
| RAM recommandée | 4 GB | 8 GB | 16 GB+/nœud |
| Daemons actifs | Aucun | 5 (NN, DN, SNN, RM, NM) | 5+ par nœud |
| Cas d'usage | Développement, CI/CD | Apprentissage, TP | Production |
| Difficulté | Facile ★☆☆ | Moyenne ★★☆ | Complexe ★★★ |
Mode Local
┌──────────────────────────────┐ │ 🖥️ Votre Ordinateur │ │ │ │ ┌──────────────────────┐ │ │ │ JVM Unique │ │ │ │ MapReduce Driver │ │ │ │ Mapper × 1 │ │ │ │ Reducer × 1 │ │ │ └──────────────────────┘ │ │ │ │ 📂 Filesystem LOCAL │ │ (pas de HDFS) │ └──────────────────────────────┘
Pseudo-Distribué
┌──────────────────────────────┐ │ 🖥️ Ordinateur (localhost) │ │ │ │ 🏠 NameNode (JVM 1) │ │ 💾 DataNode (JVM 2) │ │ 📸 2nd NameNode (JVM 3) │ │ ⚙️ ResourceManager (JVM 4) │ │ 📦 NodeManager (JVM 5) │ │ │ │ 📂 HDFS local (réplication ×1)│ └──────────────────────────────┘
Totalement Distribué
┌───────────────────────────┐
│ master01 (Maître) │
│ 🏠 NameNode + ⚙️ ResMgr │
└─────────┬─────────────────┘
│ SSH + réseau
┌────────┼──────────┐
▼ ▼ ▼
[worker1] [worker2] [worker3]
💾 DataNode + 📦 NodeMgr
(réplication ×3 sur 3 racks)
2 Guides d'Installation
Mode Local — Aucune configuration requise !
Fonctionne immédiatement après décompression. Idéal pour développer des jobs MapReduce.
java -version
# 2. Télécharger Hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzf hadoop-3.3.6.tar.gz && cd hadoop-3.3.6
# 3. Configurer JAVA_HOME dans etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
# 4. Tester avec WordCount en mode local
mkdir -p /tmp/input && echo "Hello Hadoop Hello World" > /tmp/input/test.txt
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
wordcount /tmp/input /tmp/output
cat /tmp/output/part-r-00000
# Résultat : Hadoop 2 Hello 2 World 1
Pseudo-Distribué — SSH sans mot de passe requis
Configure HDFS + YARN sur votre machine locale. 5 daemons démarrent en parallèle.
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
ssh localhost # doit fonctionner sans mot de passe
# 2. etc/hadoop/core-site.xml
<configuration>
<property><name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value></property>
</configuration>
# 3. etc/hadoop/hdfs-site.xml
<property><name>dfs.replication</name><value>1</value></property>
# 4. Formater NameNode (UNE SEULE FOIS !)
bin/hdfs namenode -format
# 5. Démarrer HDFS + YARN
sbin/start-dfs.sh # → http://localhost:9870
sbin/start-yarn.sh # → http://localhost:8088
# 6. Vérifier les 5 daemons
jps
# NameNode DataNode SecondaryNameNode ResourceManager NodeManager
Cluster Distribué — Minimum 4 machines
1 Master (NameNode + ResourceManager) + 3 Workers (DataNode + NodeManager).
192.168.1.10 master01
192.168.1.11 worker01
192.168.1.12 worker02
192.168.1.13 worker03
# 2. SSH sans mot de passe du master vers workers
ssh-copy-id hadoop@worker01
ssh-copy-id hadoop@worker02
ssh-copy-id hadoop@worker03
# 3. core-site.xml (même sur TOUS les nœuds)
fs.defaultFS = hdfs://master01:9000
# 4. hdfs-site.xml
dfs.replication = 3
dfs.blocksize = 134217728 # 128 MB
# 5. etc/hadoop/workers (sur master01)
worker01
worker02
worker03
# 6. Formater et démarrer depuis master01
bin/hdfs namenode -format -clusterId prod-cluster-01
sbin/start-dfs.sh # Démarre DN sur chaque worker automatiquement
sbin/start-yarn.sh
bin/hdfs dfsadmin -report