1. République Tunisienne
Ministère de l'Enseignement Supérieur et de la Recherche Scientifique
Université de Kairouan
Faculté des Sciences et Technologies de Sidi Bouzid
Département de mathématiques et d'informatique
Compte rendu
Projet BIG DATA
Objet :
Hadoop / MapReduce
Réaliser par :
Issam HAMDI
Sous la direction de :
Hela LTIFI
2023/2024
2. I. Activité 1 (Manipulation HDFS)
II.
1. Objectifs du TP
Initiation au framework hadoop et au patron MapReduce, utilisation de docker
pour lancer un cluster hadoop de 3 noeuds.
2. Outils et Versions
Apache Hadoop Version : 2.7.2.
Docker Version 17.09.1
IntelliJ IDEA Version Ultimate 2016.1 (ou tout autre IDE de votre choix)
Java Version 1.8.
Unix-like ou Unix-based Systems (Divers Linux et MacOS)
Hadoop
3. Présentation
Apache Hadoop est un framework open-source pour stocker et traiter les
données volumineuses sur un cluster. Il est utilisé par un grand nombre de
contributeurs et utilisateurs. Il a une licence Apache 2.0.
4. Hadoop et Docker
Pour déployer le Framework Hadoop, nous allons utiliser des centenaires Docker.
L'utilisation des contenaires va garantir la consistance entre les environnements de
développement et 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).
Pour le déploiement des ressources de ce TP suivi les instructions présentées ici.
3. 5. Installation
Je veux iliser tout au long de ce TP trois centenaires représentant respectivement
un noeud maître (Namenode) et deux noeuds esclaves (Datanodes). Pour cela avoir
installé docker sur votre machine, et l'avoir correctement configuré. Ouvrir la ligne de
commande, et taper les instructions suivantes :
Cloner le référentiel docker-hadoop à partir de GitHub
Accédez à ce lien https://github.com/big-data-europe/docker-hadoop et clonez
le référentiel, si vous utilisez la console, vous pouvez taper la commande suivante
: git clone https://github.com/big-data-europe/docker-hadoop
Et vous obtiendrez la structure de dossiers suivante
Démarrez les conteneurs nécessaires à l’aide de docker-compose
Exécutez la commande suivante :
docker-compose up -d
Cela lancera les cinq conteneurs nécessaires (si c’est la première fois que vous
faites cela, vous devrez attendre la fin du téléchargement)
Docker Compose nous permet d’exécuter des applications Docker multi-
conteneurs et d’utiliser plusieurs commandes à l’aide d’un seul fichier YAML.
4. Ainsi, l’appel de la commande précédente exécutera toutes les lignes de notre
fichier docker-compose.yml, et téléchargera les images nécessaires, si nécessaire.
Vous pouvez vérifier si les cinq conteneurs sont en cours d’exécution en tapant
la commande « docker ps ».
Entrez dans notre nœud maître « namenode »
docker exec -it namenode bash
Nous obtenons notre conteneur namenode, qui est le nœud maître de notre
cluster Hadoop. Il s’agit essentiellement d’un mini-linux. Il nous permettra de gérer
notre système de fichiers HDFS.
Créer une structure de dossiers pour allouer les fichiers d’entrée
Tout d’abord, vous pouvez répertorier tous les fichiers de notre système HDFS
hdfs dfs -l /
Maintenant, nous devons créer un fichier /user/root/, car hadoop fonctionne avec
cette structure définie
hdfs dfs -mkdir -p /utilisateur/racine
Nous pouvons vérifier s’il a été créé correctement
hdfs dfs -ls /utilisateur/
Télécharger
./start-hadoop.sh
Le résultat devra ressembler à ce qui suit :
5. 6. Premiers pas avec Hadoop
Toutes les commandes interagissant avec le système Hadoop commencent par
hadoop fs. Ensuite, les options rajoutées sont très largement inspirées des
commandes Unix standard. Créer un répertoire dans HDFS, appelé input. Pour cela,
taper :
hadoop fs –mkdir -p input
Erreur
Si pour une raison ou une autre, vous n'arrivez pas à créer le répertoire input,
avec un message ressemblant à ceci: ls: `.': No such file or directory , veiller à
construire l'arborescence de l'utilisateur principal (root), comme suit:
hadoop fs -mkdir -p /user/root
Utiliser le fichier purchases.txt comme entrée pour le traitement MapReduce. Ce
fiechier se trouve déjà sous le répertoire principal de votre machine master. Charger le
chier purchases dans le répertoire input que vous avez créé:
hadoop fs –put purchases.txt input
Pour afficher le contenu du répertoire input, la commande est:
hadoop fs –ls input
Pour afficher les dernières lignes du fichier purchases:
6. hadoop fs -tail input/purchases.txt
Le résultat suivant va donc s'affcher:
Nous présentons dans le tableau suivant les commandes les plus utilisées pour
manipuler les fichiers dans HDFS:
7. Instruction Fonctionnalité
hadoop fs –ls A cher le contenu du répertoire racine
hadoop fs –put file.txt Upload un chier dans hadoop (à partir du
répertoire courant linux)
hadoop fs –get file.txt Download un chier à partir de hadoop sur votre
disque local
hadoop fs –tail file.txt Lire les dernières lignes du chier
hadoop fs –cat file.txt A che tout le contenu du chier
hadoop fs –mv file.txt newfile.txt Renommer le chier
hadoop fs –rm newfile.txt Supprimer le chier
hadoop fs –mkdir myinput Créer un répertoire
hadoop fs –cat file.txt | less Lire le chier page par page
7. 8. Conclusion
Les données énormes sont une particularité importante comme la nanotechnologie et
l’enregistrement quantique dans la période actuelle. Huge Data est le terme générique pour les
données, mais pour non structurer, semi-organisé et organisé. En examinant mieux les énormes
volumes d’informations qui s’ouvrent, ce sont de nombreuses régions qui sont négligées. Quoi
qu’il en soit, de nombreuses difficultés spécialisées doivent être surmontées, devant les produits
d’un immense domaine d’énormes informations qui nous sont accessibles.