SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
1 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
TP 1 - Big Data
Programmation Hadoop
Introduction
Dans ce TP, nous manipulerons l’exemple « Word Count » ou « Compteur d’occurrence de
mots » vu en cours, en premier lieu sur la machine virtuelle Apache Hadoop (installée par
l’étudiant) puis sur la machine virtuelle Cloudera.
A. Manipulation sur la VM Apache Hadoop
I. Préparation du TD
1. Démarrer la machine virtuelle.
2. Démarrer les services de Hadoop avec les commandes :
$ start-dfs.sh
$ start-yarn.sh
3. Vérifier le bon fonctionnement de Hadoop. Utiliser l'outil jps pour lister les processus
Java en cours d'exécution :
$ jps
3631 Jps
3336 NodeManager
3212 ResourceManager
3651 NameNode
2863 DataNode
3052 SecondaryNameNode
4. Vérifier que l'environnement de compilation est fonctionnel.
(Vérifier que Java est bien installé sur votre machine « java –version »).
2 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
5. Exécuter la commande suivante (sur la même ligne) :
$ wget --no-check-certificate
'https://docs.google.com/uc?export=download&id=0B4fI_1marvB
ZZFYwVm5aYmZ1LUU' -O td1_bigdata_enis.zip
La commande va télécharger une archive contenant :
- Le poème ayant servi d'exemple en cours.
- Le code d'exemple du cours (classes Driver, Map et Reduce).
- Un script permettant la mise en place simplifiée de l'environnement de compilation.
Vous pouvez la télécharger directement via le lien : https://goo.gl/jiuFnF
6. Décompresser l'archive :
$ unzip td1_bigdata_enis.zip
II. Manipulation de l’exemple
Nous allons maintenant compiler le code d'exemple Java du cours (compteur d’occurrence de
mots).
1. Changer le répertoire courant :
$ cd td1_bigdata_enis
2. Compiler le programme Hadoop (le tout sur la même ligne) :
$ javac -classpath
"/usr/local/hadoop/share/hadoop/common/hadoop-common-
2.7.4.jar:/usr/local/hadoop/share/hadoop/mapreduce/hadoop-
mapreduce-client-common-
2.7.4.jar:/usr/local/hadoop/share/hadoop/common/lib/commons
-cli-
1.2.jar:/usr/local/hadoop/share/hadoop/mapreduce/hadoop-
mapreduce-client-core-2.7.4.jar" WCount*java
La compilation a généré trois fichiers .class: un pour chacune de nos classes (driver, map
et reduce).
3 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
3. On va désormais packager le programme d'exemple au sein d'un fichier .jar. Créer
l'arborescence liée au nom du package avec la commande :
$ mkdir -p enis/hadoop/wordcount
Et déplacer, par la suite, les fichiers compilés au sein de cette arborescence :
$ mv *.class enis/hadoop/wordcount
4. Générer le .jar :
$ jar -cvf enis_wcount.jar -C . enis
5. En préparation de l'exécution de notre programme Hadoop, nous allons maintenant
déplacer le texte du poème sur HDFS. Exécuter la commande :
$ hadoop fs -put poeme.txt /
et vérifier sa présence avec la commande :
$ hadoop fs -ls /
6. Enfin, exécuter notre programme Hadoop avec la commande :
$ hadoop jar enis_wcount.jar enis.hadoop.wordcount.WCount /poeme.txt /results
La commande devrait prendre tout au plus quelques secondes à s'exécuter.
Si tout s'est passé correctement, un message « mapreduce.Job: map 100% reduce
100% » devrait s'afficher.
7. Vérifier la présence des fichiers de résultats dans le répertoire /results avec la commande :
$ hadoop fs -ls /results
(un fichier _SUCCESS devrait être présent, ainsi qu'un fichier part-r-00000).
8. Enfin, afficher les résultats finaux avec la commande :
$ hadoop fs -cat /results/part-r-00000
4 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
Le mot « qui » devrait être le plus présent au sein de la poème (25 occurrences).
Consultez la figure 1 ci-dessous.
Figure 1. Résultat
5 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
B. Manipulation sur la VM Cloudera
Cloudera propose une solution clé en main – gratuite – permettant de bénéficier d’une
configuration Hadoop fonctionnelle sous une nouvelle machine virtuelle invitée de VirtualBox
(ou autre, ex. VMWare). Dans le cadre de ce TP, nous utiliserons la distribution cloudera basée
sur le système d’exploitation CentOs (une machine virtuelle « All-in-One ») et comprenant un
cluster Hadoop simple noeud. Dans cette VM plusieurs composantes ont été pré-installé (Spark,
Hive, Zeppelin, etc.)
 Installer VirtualBox (https://www.virtualbox.org/) si ce n’est pas déjà fait.
 Importer la machine virtuelle cloudera-BigData.ova du TP.
 Démarrer la machine virtuelle.
 Depuis le terminal. Exécuter la commande suivante pour transformer le clavier en azerty
$ setxkbmap fr
 Vérifier le bon fonctionnement de Hadoop en exécutant la commande:
$ hdfs dfsadmin -report
La commande vérifie le statut de HDFS. Elle devrait afficher:
Live datanodes (1) :
 Vérifier la version d’Hadoop en exécutant la commande:
$ hadoop version
 A partir d’un navigateur web, le lien suivant http://localhost:50070/ vous permettra
d’accéder à l’interface Web du noeud maître (NameNode)
Nous allons maintenant compiler le code d'exemple Java du cours (compteur d’occurrence
de mots).
Objectif: vérifier que l'environnement de compilation soit fonctionnel et que Hadoop soit
correctement à même d'exécuter des tâches, et se familiariser avec le processus de
compilation.
6 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
 Télécharger l’archive du projet maven WordCount.zip (lien: https://goo.gl/Ff6csj) :
Cette archive contient :
o Le poème ayant servi d'exemple en cours dans le dossier data.
o Le code d'exemple du cours (classes driver, map et reduce).
 Décompresser l'archive
 On va désormais packager le programme d'exemple au sein d'un fichier .jar. Créer
l'arborescence liée au nom du package avec la commande:
(Attention : cette commande ne pourra fonctionner que si vous la lancez depuis le même
dossier contenant le fichier pom.xml: $ cd WordCount/WordCount )
$ mvn clean package
 En préparation de l'exécution du programme Hadoop, nous allons en premier temps créer
dans le disque HDFS un dossier pour ce TP. Vous allez travailler dans la suite du TP dans
un dossier nom.de.votre.dossier (à fixer) sur la racine du disque HDFS (Attention : le
dossier nom.de.votre.dossier n’existe pas). On va créer dedans un dossier wordcount en
exécutant la commande suivante :
$ hadoop fs -mkdir -p /nom.de.votre.dossier/wordcount
 Maintenant il faut déplacer le texte du poème du dossier data sur le disque HDFS dans le
dossier créé. Exécuter la commande :
$ hadoop fs -put data/poeme.txt /nom.de.votre.dossier/wordcount
 et vérifier sa présence avec la commande :
$ hadoop fs -ls /nom.de.votre.dossier/wordcount
ou directement via l’interface Web (Hue - Hadoop User Experience)
http://quickstart.cloudera:8888/filebrowser/view/user/cloudera#/
 Enfin, exécuter votre programme Hadoop avec la commande ci-dessous sur la même
ligne : (Attention : le jar créé est dans le dossier target: $ cd target)
$ hadoop jar WordCount-1.0-SNAPSHOT.jar WCount
/nom.de.votre.dossier/wordcount/poeme.txt
/nom.de.votre.dossier/resultat_wordcount
7 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
La commande devrait prendre tout au plus quelques secondes à s'exécuter.
Si tout s'est passé correctement, un message «mapreduce.Job: map 100% reduce
100%» devrait s'afficher.
 Vérifier la présence des fichiers de résultats dans le répertoire /resultat_wordcount avec
la commande:
$ hadoop fs -ls /nom.de.votre.dossier/resultat_wordcount
ou directement via Hue
(un fichier _SUCCESS devrait être présent, ainsi qu'un fichier part-r-00000).
 Enfin, afficher les résultats finaux avec la commande:
$ hadoop fs -cat /nom.de.votre.dossier/resultat_wordcount/part-r-00000
ou directement via Hue
Le mot « qui » devrait être le plus présent au sein du poème avec 25 occurrence
(Fig2).
Figure 2. Résultat

Contenu connexe

Tendances

Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleLilia Sfaxi
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introductionMouna Torjmen
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesLilia Sfaxi
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehousekhlifi z
 

Tendances (20)

Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation Multidimensionnelle
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Bi
BiBi
Bi
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introduction
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de Données
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Big data
Big dataBig data
Big data
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehouse
 

Similaire à TP1 Big Data - MapReduce

Hadoop MapReduce.docx
Hadoop  MapReduce.docxHadoop  MapReduce.docx
Hadoop MapReduce.docxIssamHamdi
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidAmal Abid
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Hamza Ben Marzouk
 
mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04ImnaTech
 
Introduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP RennesIntroduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP RennesYann Nave
 
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Joël Séguillon
 
Install arch ultrabook full luks ssd
Install arch ultrabook full luks ssdInstall arch ultrabook full luks ssd
Install arch ultrabook full luks ssdAnthony Le Goff
 
Utiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreamingUtiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreamingDavid Morel
 
Reseau entreprise
Reseau entrepriseReseau entreprise
Reseau entrepriseSAIDRAISS2
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linuxKhalid ALLILI
 
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdflaravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdfHeartKing10
 
Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas yassine87
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMehdi Mehni
 

Similaire à TP1 Big Data - MapReduce (20)

Hadoop MapReduce.docx
Hadoop  MapReduce.docxHadoop  MapReduce.docx
Hadoop MapReduce.docx
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
 
Atelier 5
Atelier 5Atelier 5
Atelier 5
 
Hadoop
HadoopHadoop
Hadoop
 
mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04mise en place de wordpresss sous Ubuntu 22.04
mise en place de wordpresss sous Ubuntu 22.04
 
Hadoop
HadoopHadoop
Hadoop
 
Introduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP RennesIntroduction à docker - Meetup WP Rennes
Introduction à docker - Meetup WP Rennes
 
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
 
Install arch ultrabook full luks ssd
Install arch ultrabook full luks ssdInstall arch ultrabook full luks ssd
Install arch ultrabook full luks ssd
 
Utiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreamingUtiliser Hadoop en perl avec HadoopStreaming
Utiliser Hadoop en perl avec HadoopStreaming
 
Reseau entreprise
Reseau entrepriseReseau entreprise
Reseau entreprise
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
 
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdflaravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
 
Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas Mise en place de Nagios3 pas à pas
Mise en place de Nagios3 pas à pas
 
Apache giraph
Apache giraphApache giraph
Apache giraph
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellence
 

Dernier

Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023France Travail
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentationbahija babzine
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attalcontact Elabe
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...France Travail
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
analyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptxanalyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptxHadJer61
 

Dernier (6)

Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
analyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptxanalyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptx
 

TP1 Big Data - MapReduce

  • 1. 1 ENIS – GI 3 – 2017/2018 Mme. Amal ABID TP 1 - Big Data Programmation Hadoop Introduction Dans ce TP, nous manipulerons l’exemple « Word Count » ou « Compteur d’occurrence de mots » vu en cours, en premier lieu sur la machine virtuelle Apache Hadoop (installée par l’étudiant) puis sur la machine virtuelle Cloudera. A. Manipulation sur la VM Apache Hadoop I. Préparation du TD 1. Démarrer la machine virtuelle. 2. Démarrer les services de Hadoop avec les commandes : $ start-dfs.sh $ start-yarn.sh 3. Vérifier le bon fonctionnement de Hadoop. Utiliser l'outil jps pour lister les processus Java en cours d'exécution : $ jps 3631 Jps 3336 NodeManager 3212 ResourceManager 3651 NameNode 2863 DataNode 3052 SecondaryNameNode 4. Vérifier que l'environnement de compilation est fonctionnel. (Vérifier que Java est bien installé sur votre machine « java –version »).
  • 2. 2 ENIS – GI 3 – 2017/2018 Mme. Amal ABID 5. Exécuter la commande suivante (sur la même ligne) : $ wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=0B4fI_1marvB ZZFYwVm5aYmZ1LUU' -O td1_bigdata_enis.zip La commande va télécharger une archive contenant : - Le poème ayant servi d'exemple en cours. - Le code d'exemple du cours (classes Driver, Map et Reduce). - Un script permettant la mise en place simplifiée de l'environnement de compilation. Vous pouvez la télécharger directement via le lien : https://goo.gl/jiuFnF 6. Décompresser l'archive : $ unzip td1_bigdata_enis.zip II. Manipulation de l’exemple Nous allons maintenant compiler le code d'exemple Java du cours (compteur d’occurrence de mots). 1. Changer le répertoire courant : $ cd td1_bigdata_enis 2. Compiler le programme Hadoop (le tout sur la même ligne) : $ javac -classpath "/usr/local/hadoop/share/hadoop/common/hadoop-common- 2.7.4.jar:/usr/local/hadoop/share/hadoop/mapreduce/hadoop- mapreduce-client-common- 2.7.4.jar:/usr/local/hadoop/share/hadoop/common/lib/commons -cli- 1.2.jar:/usr/local/hadoop/share/hadoop/mapreduce/hadoop- mapreduce-client-core-2.7.4.jar" WCount*java La compilation a généré trois fichiers .class: un pour chacune de nos classes (driver, map et reduce).
  • 3. 3 ENIS – GI 3 – 2017/2018 Mme. Amal ABID 3. On va désormais packager le programme d'exemple au sein d'un fichier .jar. Créer l'arborescence liée au nom du package avec la commande : $ mkdir -p enis/hadoop/wordcount Et déplacer, par la suite, les fichiers compilés au sein de cette arborescence : $ mv *.class enis/hadoop/wordcount 4. Générer le .jar : $ jar -cvf enis_wcount.jar -C . enis 5. En préparation de l'exécution de notre programme Hadoop, nous allons maintenant déplacer le texte du poème sur HDFS. Exécuter la commande : $ hadoop fs -put poeme.txt / et vérifier sa présence avec la commande : $ hadoop fs -ls / 6. Enfin, exécuter notre programme Hadoop avec la commande : $ hadoop jar enis_wcount.jar enis.hadoop.wordcount.WCount /poeme.txt /results La commande devrait prendre tout au plus quelques secondes à s'exécuter. Si tout s'est passé correctement, un message « mapreduce.Job: map 100% reduce 100% » devrait s'afficher. 7. Vérifier la présence des fichiers de résultats dans le répertoire /results avec la commande : $ hadoop fs -ls /results (un fichier _SUCCESS devrait être présent, ainsi qu'un fichier part-r-00000). 8. Enfin, afficher les résultats finaux avec la commande : $ hadoop fs -cat /results/part-r-00000
  • 4. 4 ENIS – GI 3 – 2017/2018 Mme. Amal ABID Le mot « qui » devrait être le plus présent au sein de la poème (25 occurrences). Consultez la figure 1 ci-dessous. Figure 1. Résultat
  • 5. 5 ENIS – GI 3 – 2017/2018 Mme. Amal ABID B. Manipulation sur la VM Cloudera Cloudera propose une solution clé en main – gratuite – permettant de bénéficier d’une configuration Hadoop fonctionnelle sous une nouvelle machine virtuelle invitée de VirtualBox (ou autre, ex. VMWare). Dans le cadre de ce TP, nous utiliserons la distribution cloudera basée sur le système d’exploitation CentOs (une machine virtuelle « All-in-One ») et comprenant un cluster Hadoop simple noeud. Dans cette VM plusieurs composantes ont été pré-installé (Spark, Hive, Zeppelin, etc.)  Installer VirtualBox (https://www.virtualbox.org/) si ce n’est pas déjà fait.  Importer la machine virtuelle cloudera-BigData.ova du TP.  Démarrer la machine virtuelle.  Depuis le terminal. Exécuter la commande suivante pour transformer le clavier en azerty $ setxkbmap fr  Vérifier le bon fonctionnement de Hadoop en exécutant la commande: $ hdfs dfsadmin -report La commande vérifie le statut de HDFS. Elle devrait afficher: Live datanodes (1) :  Vérifier la version d’Hadoop en exécutant la commande: $ hadoop version  A partir d’un navigateur web, le lien suivant http://localhost:50070/ vous permettra d’accéder à l’interface Web du noeud maître (NameNode) Nous allons maintenant compiler le code d'exemple Java du cours (compteur d’occurrence de mots). Objectif: vérifier que l'environnement de compilation soit fonctionnel et que Hadoop soit correctement à même d'exécuter des tâches, et se familiariser avec le processus de compilation.
  • 6. 6 ENIS – GI 3 – 2017/2018 Mme. Amal ABID  Télécharger l’archive du projet maven WordCount.zip (lien: https://goo.gl/Ff6csj) : Cette archive contient : o Le poème ayant servi d'exemple en cours dans le dossier data. o Le code d'exemple du cours (classes driver, map et reduce).  Décompresser l'archive  On va désormais packager le programme d'exemple au sein d'un fichier .jar. Créer l'arborescence liée au nom du package avec la commande: (Attention : cette commande ne pourra fonctionner que si vous la lancez depuis le même dossier contenant le fichier pom.xml: $ cd WordCount/WordCount ) $ mvn clean package  En préparation de l'exécution du programme Hadoop, nous allons en premier temps créer dans le disque HDFS un dossier pour ce TP. Vous allez travailler dans la suite du TP dans un dossier nom.de.votre.dossier (à fixer) sur la racine du disque HDFS (Attention : le dossier nom.de.votre.dossier n’existe pas). On va créer dedans un dossier wordcount en exécutant la commande suivante : $ hadoop fs -mkdir -p /nom.de.votre.dossier/wordcount  Maintenant il faut déplacer le texte du poème du dossier data sur le disque HDFS dans le dossier créé. Exécuter la commande : $ hadoop fs -put data/poeme.txt /nom.de.votre.dossier/wordcount  et vérifier sa présence avec la commande : $ hadoop fs -ls /nom.de.votre.dossier/wordcount ou directement via l’interface Web (Hue - Hadoop User Experience) http://quickstart.cloudera:8888/filebrowser/view/user/cloudera#/  Enfin, exécuter votre programme Hadoop avec la commande ci-dessous sur la même ligne : (Attention : le jar créé est dans le dossier target: $ cd target) $ hadoop jar WordCount-1.0-SNAPSHOT.jar WCount /nom.de.votre.dossier/wordcount/poeme.txt /nom.de.votre.dossier/resultat_wordcount
  • 7. 7 ENIS – GI 3 – 2017/2018 Mme. Amal ABID La commande devrait prendre tout au plus quelques secondes à s'exécuter. Si tout s'est passé correctement, un message «mapreduce.Job: map 100% reduce 100%» devrait s'afficher.  Vérifier la présence des fichiers de résultats dans le répertoire /resultat_wordcount avec la commande: $ hadoop fs -ls /nom.de.votre.dossier/resultat_wordcount ou directement via Hue (un fichier _SUCCESS devrait être présent, ainsi qu'un fichier part-r-00000).  Enfin, afficher les résultats finaux avec la commande: $ hadoop fs -cat /nom.de.votre.dossier/resultat_wordcount/part-r-00000 ou directement via Hue Le mot « qui » devrait être le plus présent au sein du poème avec 25 occurrence (Fig2). Figure 2. Résultat