1. Simulation d’un cluster Hadoop en utilisant docker
1
Dans ce TP, nous allons déployer le framework Hadoop mais en utilisant des conteneurs Docker plutôt
qu’une machine virtuelle. Cette méthode permettra de réduire la lourdeur d'exécution observée lors de
l’utilisation des machines virtuelles.
Ce TP est largement inspiré du Tutoriel et du TP disponibles aux urls suivantes :
https://www.youtube.com/watch?v=PMQkrk8OEGk&list=PLl3CtU4THqPYFvrqtQ6v6aJOV3ZHM84jm&index=3
https://insatunisia.github.io/TP-BigData/tp1/
Grâce aux conteneurs Docker, nous allons pouvoir simuler le comportement d’un cluster hadoop. Pour
ceci, nous définirons un mini-cluster : une machine Maître et deux machines Esclaves hébergées chacune
dans un conteneur Docker. Ces machines pourront communiquer à travers un réseau qui les relie. Pour ce
faire, nous utiliserons l’image Docker intitulée « spark-hadoop »disponible sur Docker Hub. Hadoop
ainsi que plusieurs briques de son écosystème sont installés sur cette image.
La première étape à effectuer afin de pouvoir exploiter les conteneurs Docker consiste bien évidemment
à installer Docker sur votre machine. Afin de vérifier que Docker est bien installé ; taper sur l’invite de
commande la commande Docker suivante :
docker run hello-world
Pour faire les manipulations nécessaires pour la mise en place du cluster Hadoop, nous utiliserons les
commandes Docker.
Afin de télécharger l’image Docker, taper :
docker pull liliasfaxi/spark-hadoop:hv-2.7.2
Vérifier que l’image a bien été téléchargée en tapant :
docker images
Afin de créer le réseau et d’installer les 3 conteneurs du Master et des 2 Slaves à partir de l’image déjà
téléchargée, taper les commandes suivantes :
docker network create --driver=bridge hadoop
docker run -itd --net=hadoop -p 9870: 9870-p 8088:8088 -p 7077:7077 -p
16010:16010 --name hadoop-master --hostname hadoop-master liliasfaxi/spark-
hadoop:hv-2.7.2
docker run -itd -p 8040:8042 --net=hadoop --name hadoop-slave1 --hostname
hadoop-slave1 liliasfaxi/spark-hadoop:hv-2.7.2
docker run -itd -p 8041:8042 --net=hadoop --name hadoop-slave2 --hostname
hadoop-slave2 liliasfaxi/spark-hadoop:hv-2.7.2
Pour voir les conteneurs qui tournent, taper :
docker ps
Vous devriez trouver les trois conteneurs (1 Maître et deux Esclaves) déjà créés.
Pour visualiser la liste de tous les conteneurs Docker disponibles, taper : docker ps -a
Pour démarrer un conteneur Docker, il faudra taper :
docker container start <id_container> ou
docker start <nom container>
Comme la seule machine qui reçoit les requêtes est la machine Master, il faudra donc taper la commande
suivante pour pouvoir faire des manipulations sur HDFS :
docker exec -it hadoop-master bash
Une fois dans le shell du namenode, il faudra commencer par lancer hadoop et yarn en tapant :
./start-hadoop.sh