Académique Documents
Professionnel Documents
Culture Documents
Objectif:
Déployer le framework Hadoop sur votre machine en utilisant des conteneurs Docker.
Outils
- SE:
o Pour windows : installation de WSL2 (Windows Subsystem Linux)
o Linux
- Docker desktop:24.0.6
- Hadoop : version 3.2.1
I-Présentation de l’environnement de travail
Hadoop
Apache Hadoop est un framework logiciel, open source, dédié au stockage et au traitement de
larges volumes de données sur un cluster (ensemble de machines). Différents éditeurs de logiciels
ont utilisé Hadoop pour créer des produits commerciaux de gestion Big Data.
Hadoop Docker
Pour déployer le framework Hadoop, nous allons utiliser des contenaires Docker. L'utilisation des
contenaires permettra de réduire considérablement la complexité de configuration des machines
(dans le cas d'un accès natif) ainsi que la lourdeur d'exécution (si on opte pour l'utilisation d'une
machine virtuelle). Cette méthode permettra de mettre en place facilement un environnement
performant, de simuler un cluster avec plusieurs machines ce qui permettra d’expérimenter HDFS
et MapReduce sur votre machine.
Présentation de Docker
Docker est une plateforme open source qui assure la portabilité des applications distribuées qu’elle
héberge. En effet, l’application devient indépendante des systèmes d’exploitation sous-jacents.
Docker fournit, grâce à la notion de container une granularité plus fine que les solutions de
virtualisation dans les systèmes classiques.
Le container (conteneur) est une sorte de MV allégée mais beaucoup plus rapide à l’exécution
des applications et moins consommatrice de ressources. En plus de l’économie en surcoût CPU,
Docker fournit des fonctionnalités intéressantes de contrôle de version et de portabilité.
https://www.docker.com/resources/what-container/
Propriétés de Docker
Muli Plateformes : Docker peut être installé et déployer sur plusieurs plateformes (Windows,
Linus et Mac)
Simplicité d’installation : l’installation est simple il suffit de suivre les instructions d’installation
pour installer Docker sur votre machine.
Installation simple des applications : les conteneurs sont lancés à partir d’images portables contenant
les différents fichiers nécessaires à l’installation des logiciels ciblés (librairies, programmes, données de
configuration, etc.). L’installation se fait via une seule ligne de commande.
Déploiement pratique : l’intégration d’une application dans un conteneur permet de faciliter son
déploiement et la gestion des versions notamment le retour à une version antérieure.
Isolation des applications: chaque application contenue dans un conteneur fonctionne
indépendamment des autres conteneurs présents sur le même système d’exploitation. L’avantage est
donc de pouvoir gérer plusieurs applications n’ayant pas les mêmes contraintes et exigences sur une
même machine. Ceci est pratique pour réaliser rapidement des prototypes et faire des premiers tests
fonctionnels.
Amélioration de la productivité des développeurs : les nouveaux environnements se configurent plus
facilement et en peu de temps.
Migration plus simple des applications : la migration d’applications basées sur des conteneurs Docker
situées en local sur vos machines se fait directement à moindre coût vers l’environnement de production
Fonctionnement de Docker
Docker introduit la notion d’image (snapshot) qui permet d’installer le service nécessaire au fonctionnement
d’un conteneur. Dockerfile est le fichier de base utilisé pour lister et automatiser la création d'image
Docker.
Docker Compose : permet, comme son nom l’indique, de composer plusieurs conteneurs dans un même
système et de les relier par un réseau. Docker Compose permet d'orchestrer les conteneurs et ainsi de
simplifier leurs déploiements sur de multiples environnements. Docker Compose est un outil écrit en Python
qui permet de décrire, dans un fichier YAML, plusieurs conteneurs comme un ensemble de services.
Pour plus d’information sur Docker compose, on peut visiter le site de Docker ou les tutoriaux sur Internet.
Ici nous expliquons l’installation pour un OS windows 10. Pour une installation sur linux voir
ici
1) Installation de Docker Desktop
a. Vérifier que WSL 2 est installé : https://docs.docker.com/desktop/install/windows-
install/#system-requirements.
- Si WSL 2 n’est pas installé alors exécuter cmd ou Powershell en tant
qu’administrateur et installer wsl voir les instructions ici :
docker rm <containerID>
- Pour arrêter tous les conteneurs et nettoyer Docker de toutes les images téléchargées:
docker container stop $(docker container ls -aq) && docker system
prune -af –volumes
docker container rm $(docker container ls -aq)
Nous rappelons que NameNode permet de gérer le stockage réparti et que Ressource Manager permet
de répartir le traitement. Les Data Node permettent le stockage réparti et les Node Manager gèrent les
ressources nécessaires pour le stockage et pour le traitement des tâches.
Pour le déploiement du framework Hadoop sur Docker, et la création du cluster Haddop nous
avons suivi les instruction ici.
Dans ce TP on va réutiliser un environnement docker-compose déjà existant d’un cluster Hadoop.
1) Commencer par créer votre dossier de travail qui contiendra tous vos travaux.
2) Utiliser git pour télécharger le dossier docker-hadoop à partir de Big Data Europe
repository
Dans votre dossier de travail taper :
ls -l
cd docker-hadoop
6) Créer le cluster Hadoop en tapant la commande. Il faut être dans le dossier contenant
docker-compose.yml
docker-compose up -d
10) Pour se connecter sur le container du namenode (master) et ouvrir une session
docker exec -it namenode bash
Pour sortir
exit
11) Pour une visualisation web du container namenode, il faut connaitre sur quel port le
container est monté.
docker container ls
http://localhost:<NumPort>:
Exemple : http://localhost:9000:
b. Pour supprimer le cluster hadoop (supprimer tous les conters) il faut exécuter la
commande suivante en étant dans le dossier qui contient docker-compose.yml.
docker compose rm