Install Docker Hadoop
Table des Matières
Installation de Hadoop via Docker¶
Les étapes pour installer Hadoop via Docker sont largement adaptées de la page de Lilia Sfaxi, elles-mêmes reposant sur le projet github de Kai Liu.
Installation de Docker et des noeuds¶
Pour installer le logiciel Docker, merci de suivre les consignes disponibles ici, en fonction de votre système d’exploitation (lisez les System requirements pour vérifier que votre machine est adaptée). Si votre machine est trop ancienne, ou avec peu d’espace disque ou mémoire RAM, il y a de bonnes chances que l’installation ne fonctionne pas. Si c’est le cas, - soit vous pouvez travailler avec votre voisin, - soit vous pouvez aller directement à la seconde partie du TP, et réaliser les exercices en local (sans Hadoop).
A partir de maintenant et pour la suite des TPs, il vous faudra penser à lancer Docker (qui s’exécutera en arrière plan).
Nous allons utiliser, tout au long de ce TP, trois contenaires représentant respectivement un nœud maître (le Namenode) et deux nœuds esclaves (les Datanodes).
- Depuis un Terminal, téléchargez l’image docker que j’ai stocké sous dockerhub (volume à télécharger > 3.3 GB !):
Ce container contient une distribution Linux/Ubuntu, et les librairies nécessaires pour utiliser Hadoop et Spark. Il contient également python3.x (version du langage python compatible avec les versions de Hadoop et Spark installées).
- Créez les 3 contenaires à partir de l’image téléchargée. Pour cela:
a. Créez un réseau qui permettra de relier les trois contenaires:
b. Créez et lancez les trois contenaires (les instructions -p permettent de faire un mapping entre les ports de la machine hôte et ceux du contenaire).
docker run -itd --net=hadoop -p 9870:9870 -p 8088:8088 -p 7077:7077 -p 16010:16010 -p 9999:9999 --name hadoop-master --hostname hadoop-master stephanederrode/docker-cluster-hadoop-spark-python-16:4.1
docker run -itd -p 8040:8042 --net=hadoop --name hadoop-slave1 --hostname hadoop-slave1 stephanederrode/docker-cluster-hadoop-spark-python-16:4.1
docker run -itd -p 8041:8042 --net=hadoop --name hadoop-slave2 --hostname hadoop-slave2 stephanederrode/docker-cluster-hadoop-spark-python-16:4.1
Remarques
- Sur certaines machines, la première ligne de commande ne s’exécute pas correctement. L’erreur provient sans doute du port
9870que doit déjà être utilisé par une autre application installée sur votre machine. Vous pouvez alors supprimer ce port de la première ligne de commande : - Le port
9999sera utilisé lors du TP sur la librairie Spark streaming.
Preparation au TP¶
- Entrez dans le contenaire
hadoop-masterpour commencer à l’utiliser Le résultat de cette exécution sera le suivant: Il s’agit dushellou dubash(Linux/Ubuntu) du nœud maître. - La commande
ls, qui liste les fichiers et dossiers du dossier en cours, doit faire état des répertoires et fichiers suivants (et d’autres fichiers éventuellement):
Remarque Ces étapes de configuration ne doivent être réalisées qu’une seule fois. Pour relancer le cluster (une fois qu’on a fermé et relancé son ordinateur p. ex.), il suffira
- de lancer l’application
Docker Desktop, qui lance les daemon Docker. - de lancer la commande suivante : Vous pouvez alors entrer dans le Namenode :