Vous êtes sur la page 1sur 7

Classe : 3ème année Géomatique

Matière : Big Data


TP1 : Installation Hadoop via Docker Compose
Enseignante : Mme Sonia Ben Ticha Azzouz
Date : Janvier 2023

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.

S. Ben Ticha Azzouz 1/7 janvier 2023


Géomatique BigData TP1: Installation

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é.

Figure 1 Architecture Docker

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

S. Ben Ticha Azzouz 2/7 novembre 2023


Géomatique BigData TP1: Installation

Figure 2 Création de conteneurs 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.

II- Installation de Docker Desktop

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 :

b. Télécharger Docker Desktop correspondant à votre système d’exploitation windows


c. Installer en suivant les instructions (https://docs.docker.com/desktop/install/windows-
install/ ). Attention vous devez être connectés avec un compte administrateur.
(nécessaire pour l’installation mais pas pour l’utilisation de Docker).
d. Après l’installation, attention, il faut ajouter votre compte utilisateur (si différent de celui
utilisé pour l’installation) au groupe docker-users : exécuter l’application Gestion
de l’ordinateur en tant qu’administrateur et aller dans le menu
Utilisateurs et groupes locaux>Groupes>docker-users cliquer
droit et ajouter l’utilisateur dans le groupe puis valider.

S. Ben Ticha Azzouz 3/7 novembre 2023


Géomatique BigData TP1: Installation

2) Vérification de l’installation de Docker


i. Exécuter power shell ou cmd
ii. Lancer wsl
iii. Pour voir la version de Docker

iv. Pour voir la version de Docker Compose

v. Pour voir si docker s’exécute correctement : cette commande exécute l’image


docker nginx et créé un conteneur nommé myserver
docker run -d -p 80:80 --name myserver nginx
vi. Voir la liste des conteneurs créés
docker ps
vii. Travail demandé : pour vous familiariser avec docker, tester les commandes de la
section suivante. Quel est le nom du conteneur ? quel est sont ID ? quel est sont
statut ? quelle est sa date de création ? quelle est l’image qui l’a créée ?

3) Quelques commandes Docker


- On peut accéder à un conteneur soit par son ID soit par son nom
- Pour consulter les conteneurs installés même ceux qui ne sont pas démarrés
docker container ps -a
- Pour consulter les conteneurs démarrés
docker container ps
- Pour démarrer un conteneur
- docker container start <id_container> ou
- docker start <nom container>
- Pour arrêter un conteneur en cours d’exécution
- docker container stop <id_container> ou
- docker stop <nom container>

- Pour consulter les images utilisées dans les conteneurs :


docker container ls -a
- Pour avoir la liste des ID des conteneurs crées :
docker container ls -aq

- Pour supprimer un conteneur :


docker ps -a
docker container stop <id_container>

S. Ben Ticha Azzouz 4/7 novembre 2023


Géomatique BigData TP1: Installation

docker rm <containerID>

- Effacer toutes les images :


docker images

docker rmi -f <imageID>

- Pour tuer un conteneur particulier :


docker container kill <containerID>

- Pour arrêter tous les containers en cours


docker container stop $(docker container ls -aq)

- 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)

- Pour démarrer la création de l’image et du cluster installé par docker-compose :


docker-compose up --build -d

- Pour arrêter le cluster et supprimer ses conteneurs proprement :


docker-compose down

- Pour le help sur docker-compose


docker-compose --help
III- Installation du framework Hadoop dans Docker avec docker-compose
Le but de ce TP est d’installer un cluster Hadoop en utilisant Docker-compose. Ce cluster va permettre
d’installer les composants de Hadoop dans des machines virtuelles différentes : le NameNode, le DataNode,
le Resource Manager et un Node Manager.

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 :

git clone https://github.com/big-data-europe/docker-hadoop.git

3) Vérifier la création du dossier docker-hadoop

ls -l

S. Ben Ticha Azzouz 5/7 novembre 2023


Géomatique BigData TP1: Installation

4) Aller dans le dossier docker-hadoop

cd docker-hadoop

5) Visualiser le fichier docker-compose.yml. Utiliser un éditeur de texte


Pour mieux comprendre ce qu’est docker-compose.yml consulter cette page
a) Quelles sont les containers qui vont être crées ? Quelles sont les images utilisées ?
b) Expliquer les différentes sections de Docker-compose.
c) Proposer un schéma d’architecture des différents composants du cluster.

6) Créer le cluster Hadoop en tapant la commande. Il faut être dans le dossier contenant
docker-compose.yml

docker-compose up -d

7) Vérifier que 5 conteneurs ont été créés et sont en cours d’exécution


docker container ps

8) Ou utiliser l’interface graphique de Docker (Dashboard)

9) Le statut peut être également visible via la page web


http://localhost:9870:

S. Ben Ticha Azzouz 6/7 novembre 2023


Géomatique BigData TP1: Installation

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:

4) Quelques commandes Docker-compose


a. Pour arrêter le cluster hadoop (stopper tous les conteneurs) il faut exécuter la commande
suivante en étant dans le dossier qui contient docker-compose.yml.
docker compose stop

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

S. Ben Ticha Azzouz 7/7 novembre 2023

Vous aimerez peut-être aussi