SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
1 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
Projet Big Data
Partie I : Installation et configuration de
Hadoop 2 - Pseudodistributed Mode
Présentation
Cette partie de projet s'intéresse à l'installation et la configuration d'un cluster Hadoop simple nœud
en utilisant la version proposée par la fondation Apache. Nous décrirons comment réaliser une telle
installation dans un système virtualisé Linux (Ubuntu 16.04). Bien entendu, Hadoop n'a d'intérêt que s'il
est utilisé dans un cluster composé de plusieurs machines. En effet, utiliser Hadoop dans un
environnement simple nœud, comme nous allons le faire, n'a de sens que pour tester la configuration
de l'installation ou fournir un environnement de développement MapReduce.
Pour télécharger Hadoop deux solutions sont disponibles. La première solution est d'utiliser la version
proposée par la fondation Apache. Cette version est celle de référence et contient le noyau et quelques
interfaces d'administration très simplifiée. La seconde solution est d'utiliser les distributions fournies
par des entreprises qui font du service autour de Hadoop. Comme il y a une valeur ajoutée non
négligeable, ces distributions fournissent des services payants. Sans être exhaustif, voici trois sociétés
qui font de Hadoop leur spécialité.
 Cloudera : http://www.cloudera.com/
 Hortonworks : http://hortonworks.com/
 MapR Technologies : http://www.mapr.com/
Dans le cadre de ce cours, nous utiliserons la distribution Hadoop fournie par Apache. Par ailleurs, si
nous consultons le site de la fondation Apache, on se retrouve avec quatre versions majeures Hadoop. À
l'écriture de ce cours, il s'agissait des versions 0.23.X, 1.2.X, 2.2.X et 2.X.X. Les trois premières versions
correspondent à des versions stables et aptes à passer en production. La dernière est la version en cours.
2 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
I. Environnement de travail
L’installation de Hadoop 2 dans ce cours sera réalisée dans un environnement Linux virtualisé (Ubuntu
16.04 LTS).
Il est préférable d’utiliser VMware 10 :
https://drive.google.com/folderview?id=0B4fI_1marvBZR2haeVRrRmJFOEE&usp=sharing
Et créer une machine virtuelle Ubuntu 16.04 LTS :
https://drive.google.com/folderview?id=0B4fI_1marvBZOU00Y0lWZXRwUm8&usp=sharing
II. Prérequis
1. Mise à jour du système
Pour maintenir à jour le système de la machine virtuelle, utilisez la commande suivante :
$ sudo apt-get update
2. Putty (optionnel)
Si vous êtes intéressés d’utiliser SSH pour vous connectez à la machine virtuelle. Vous pouvez utiliser la
commande ssh directement sur Ubuntu ou installer un logiciel tel que Putty pour les PCs contenant
Windows 8.1 (et moins).
Dans votre pc, installez Putty :
lien de téléchargement : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Dans la machine virtuelle, installez le serveur OpenSSH pour permettre le contrôle à distance au client
SSH Putty :
$ sudo apt-get install openssh-server
Dans le “Settings” de la VM, mettez le réseau à « Bridged » ou à «NAT » selon votre type de connexion à
fin d’avoir une connexion dans la VM:
3 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
3. Java
Hadoop est écrit en Java, donc vous aurez besoin d'avoir Java installé sur votre machine (version 7 ou
ultérieure).
Pour ce cours, la version 8 de Java sera utilisée via la distribution OpenJDK. Voir commande ci-dessous
pour installer OpenJDK 8 sur un Linux.
$ sudo apt-get install openjdk-8-jdk
Après l'installation, assurez-vous que la version Java est correctement installée.
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
III. Installation
Dans ce cours, nous ciblons la dernière version stable Hadoop 2.7.4 (la version 2.8.1 est encore instable
et Hadoop 3.0.0 est encore en version alpha).
Téléchargez le fichier compressé à travers la commande suivante :
$ wget http://www.eu.apache.org/dist/hadoop/common/stable2/hadoop-2.7.4.tar.gz
Décompressez l'archive de Hadoop via la commande suivante :
$ tar xzf hadoop-2.7.4.tar.gz
Déplacez le répertoire hadoop-2.7.4 vers /usr/local sous le nom hadoop :
$ sudo mv hadoop-2.7.4 /usr/local/hadoop
Avant de pouvoir exécuter Hadoop, vous devez lui dire où Java est situé sur votre système. Si vous avez
la variable d'environnement JAVA_HOME mis au point avec une installation de Java appropriée, vous
n'avez rien à configurer.
C'est très pratique de créer une variable d'environnement (HADOOP_HOME) qui pointe vers le
répertoire d'installation Hadoop et de mettre le répertoire binaire Hadoop sur votre chemin de ligne de
commande (PATH). (En Hadoop 2.0 ou ultérieure, vous devrez mettre le répertoire sbin sur le "PATH"
aussi).
Seul le fichier de configuration utilisateur .bashrc a besoin d'être modifié afin qu'il propage les nouvelles
valeurs des variables d'environnement.
4 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
Ouvrez le fichier /home/etudiant/.bashrc (avec la commande « nano » ou « gedit »)
$ nano /home/etudiant/.bashrc
Puis ajoutez à la fin du fichier les lignes suivantes :
(PS : Vérifiez le chemin de Java dans votre machine)
# Java Environment Variable
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
# Hadoop Environment Variables
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
Pour que le système prenne en compte la modification, redémarrez la machine : [sudo reboot] ou bien
recharger le fichier ~/.bashrc : [source ~/.bashrc].
Le fichier $HADOOP_HOME/etc/hadoop/hadoop-env.sh contient des variables d'environnement
utilisées par Hadoop. Décommentez (ou modifiez) celle de la variable JAVA_HOME.
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Vérifiez que Hadoop s'exécute en tapant :
$ hadoop version
Hadoop 2.7.4
Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r
cd915e1e8d9d0131462a0b7301586c175728a282
Compiled by kshvachk on 2017-08-01T00:29Z
Compiled with protoc 2.5.0
From source with checksum 50b0468318b4ce9bd24dc467b7ce1148
This command was run using
/usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.4.jar
5 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
IV. Configuration
1. Fichiers de configuration Hadoop
Tous les fichiers de configuration de Hadoop sont disponibles dans le répertoire /etc/hadoop.
Les fichiers de configuration de Hadoop fonctionnent sur le principe de clé/valeur : la clé correspondant
au nom du paramètre et valeur à la valeur assignée à ce paramètre. Ces fichiers de configuration
utilisent le format XML. Les nouveaux paramètres sont à ajouter entre la balise <configuration> …
</configuration>.
Chaque propriété de ce fichier est de la forme :
<property>
<name>nom de la propriété</name>
<value>valeur de la propriété</value>
</property>
Nous ne pouvons pas être exhaustifs sur les modifications à apporter sur ces fichiers de configuration.
Nous nous limiterons donc aux paramètres de base pour exécuter un cluster Hadoop composé d'un
nœud. Pour plus d'informations sur les paramètres autorisés, nous vous invitons à consulter les liens
que nous donnerons pour chaque fichier modifié.
a. core-site.xml
Le fichier $HADOOP_HOME/etc/hadoop/core-site.xml est le fichier général de la configuration de la
plate-forme. Il contient des informations telles que le numéro de port utilisé par l'instance Hadoop, la
mémoire allouée pour le système de fichiers, la limite de mémoire pour stocker les données et la taille
des tampons de lecture/écriture.
Dans ce fichier, modifiez le contenu afin d'obtenir le résultat ci-dessous :
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
<description>The name of the default file system.</description>
</property>
</configuration>
La propriété fs.defaultFS permet de spécifier quant à elle le nom du système de fichier. Hdfs://
localhost/ est utilisé pour définir un système de fichiers par défaut pour Hadoop. Les systèmes de
fichiers sont spécifiés par un URI, et ici nous avons utilisé un HDFS URI pour configurer Hadoop à utiliser
HDFS par défaut. Les démons HDFS vont utiliser cette propriété pour déterminer l'hôte et le port du
NameNode HDFS.
! Dans la plupart des tutoriels disponibles sur la toile, le nom fs.default.name était couramment
utilisé. Celui-ci est devenu deprecated et est remplacé par fs.defaultFS.
6 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
! Plus d'informations sur les paramètres autorisés dans core-site.xml sont disponibles ici : core-
site.xml
b. hdfs-site.xml
Le fichier $HADOOP_HOME/etc/hadoop/hdfs-site.xml contient les paramètres spécifiques au système
de fichiers HDFS : le nombre de réplication des données, le chemin de NameNode et les chemins des
DataNodes dans les systèmes de fichiers locaux. Il désigne l'endroit où vous souhaitez stocker
l'infrastructure Hadoop.
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoopdata/hdfs/datanode</value>
</property>
</configuration>
Le paramètre dfs.replication permet de préciser le nombre de réplication d'un block. La valeur sera 1
puisque notre cluster ne se compose que d'un nœud. En effet, nous avons mis cette propriété, à 1 afin
que HDFS ne réplique pas le blocs du système de fichiers par le facteur par défaut 3. Lors de l'exécution
d'une seule datanode, HDFS ne peut pas reproduire les blocs à trois datanodes, de sorte qu'il soit en
avertissement continu sur les blocs étant sous-répliqués. Ce paramètre permet de
résoudre ce problème.
La propriété dfs.namenode.name.dir détermine l'endroit où le NameNode de HDFS doit stocker la
"name table" (fsimage) sur le système de fichiers local.
La propriété dfs.datanode.data.dir détermine l'endroit où un DataNode de HDFS doit stocker ses blocs
sur le système de fichiers local.
! Plus d'informations sur les paramètres autorisés dans hdfs-site.xml sont disponibles ici : hdfs-
default.xml
7 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
Créez les répertoires de NameNode et DataNode et changez le propriétaire du dossier «hadoop» et les
dossiers et fichiers contenus à l’intérieur de ce dossier.
$ cd
$ mkdir -p /usr/local/hadoop/hadoopdata/hdfs/namenode
$ mkdir -p /usr/local/hadoop/hadoopdata/hdfs/datanode
$ sudo chown etudiant:etudiant -R /usr/local/Hadoop
c. mapred-site.xml
Le fichier $HADOOP_HOME/etc/hadoop/mapred-site.xml contient les paramètres spécifiques à
MapReduce. Depuis la version 2.x de Hadoop avec l'arrivée de Yarn, ce fichier de configuration est
épaulé par yarn-site.xml.
Ainsi, si vous souhaitez utiliser Yarn comme implémentation de MapReduce, il faudra tout d'abord
renommer/copier le fichier par defaut $HADOOP_HOME/etc/hadoop/mapred-site.xml.template en
$HADOOP_HOME/etc/hadoop/mapred-site.xml. Puis, il faudra configurer le fichier mapred-site.xml
comme présenté ci-dessous (PS : La 1ère
commande doit être sur la même ligne).
$ cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template
$HADOOP_HOME/etc/hadoop/mapred-site.xml
$ nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
! Plus d'informations sur les paramètres autorisés dans mapred-site.xml sont disponibles ici :
mapred-site.xml.
d. yarn-site.xml
Puisque nous visons installer Hadoop v2, nous devons configurer le fichier
$HADOOP_HOME/etc/hadoop/yarn-site.xml.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
8 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
! Plus d'informations sur les paramètres autorisés dans yarn-site.xml sont disponibles ici : yarn-
default.xml.
2. Configuration SSH
Hadoop nécessite un accès SSH pour gérer les différents nœuds. Bien que nous soyons dans une
configuration simple nœud, nous avons besoin de configurer l'accès vers localhost.
Tout d'abord, assurez-vous que SSH est installé et un serveur est en cours d'exécution. Sur Ubuntu, ce
résultat est obtenu avec :
$ sudo apt-get install ssh
Puis, pour activer un login sans mot de passe, générez une nouvelle clé SSH avec un mot de passe vide.
$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/amal/.ssh/id_rsa):
Created directory '/home/amal/.ssh'.
Your identification has been saved in /home/amal/.ssh/id_rsa.
Your public key has been saved in /home/amal/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:6x4uPYsRJ6/J3bYAGmccyyv+QRFm8UGsYtoSir2e5M8 amal@amal-virtual-
machine
The key's randomart image is:
+---[RSA 2048]----+
| =+o |
| o o.. |
| o.. |
| . oo.+ |
|.o =..@ S |
|o + .* B . |
| .oo +.= |
| o.+ o.Xo+. |
| .+.E.*o*+o. |
+----[SHA256]-----+
Cette commande va créer une paire de clés RSA (publique/privée) avec un mot de passe vide. Dans
notre cas de test et de virtualisation, l'absence de mot de passe n'a pas d'importance. Assurez-vous d'en
fixer un si votre serveur est accessible depuis l'extérieur.
Vous devez ensuite autoriser l'accès au SSH de la machine avec cette nouvelle clé fraîchement créée.
9 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
La dernière chose à réaliser est de tester la connexion SSH.
$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be
established.
ECDSA key fingerprint is
SHA256:0Xdp/TXQvQKT9nzZ434ieIvIsbU8f0YbnbVr5wIIZes.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known
hosts.
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
537 paquets peuvent être mis à jour.
272 mises à jour de sécurité.
Last login: Mon Sep 18 21:31:55 2017 from 192.168.32.1
En cas de succès, vous ne devriez pas taper un mot de passe.
3. Initialisation du système de fichier HDFS
Avant de démarrer le serveur Hadoop, vous devez formater le système de fichiers HDFS. Comme tout
système de fichiers, il est nécessaire de le formater avant son utilisation. Dans le cas de cette installation
d'un cluster simple nœud, seul le système de fichiers HDFS de votre machine locale sera formaté. Pour
cela, il suffit d’exécuter la commande hadoop système suivante :
$ hdfs namenode –format
L'exécution du formatage devrait ressembler à cela :
17/09/18 22:38:54 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = amal-virtual-machine/127.0.1.1
STARTUP_MSG: args = [–format]
STARTUP_MSG: version = 2.7.4
STARTUP_MSG: classpath =
/usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/lib/jaxb-
api-2.2.2.jar:/usr/local/hadoop/share/hadoop/common/lib/gson-
…
…
…
STARTUP_MSG: build = https://shv@git-wip-
us.apache.org/repos/asf/hadoop.git -r
cd915e1e8d9d0131462a0b7301586c175728a282; compiled by 'kshvachk' on 2017-08-
10 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
01T00:29Z
STARTUP_MSG: java = 1.8.0_131
************************************************************/
17/09/18 22:38:54 INFO namenode.NameNode: registered UNIX signal handlers
for [TERM, HUP, INT]
17/09/18 22:38:55 INFO namenode.NameNode: createNameNode [–format]
Usage: java NameNode [-backup] |
[-checkpoint] |
[-format [-clusterid cid ] [-force] [-nonInteractive] ] |
[-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] ] |
[-upgradeOnly [-clusterid cid] [-renameReserved<k-v pairs>] ] |
[-rollback] |
[-rollingUpgrade <rollback|downgrade|started> ] |
[-finalize] |
[-importCheckpoint] |
[-initializeSharedEdits] |
[-bootstrapStandby] |
[-recover [ -force] ] |
[-metadataVersion ] ]
17/09/18 22:38:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at amal-virtual-machine/127.0.1.1
************************************************************/
Remarque :
Si la commande « hdfs namenode –format » n’a pas fonctionné convenablement, essayez la commande
suivante :
$ hadoop namenode –format
4. Démarrage et arrêt d'un serveur Hadoop
Pour démarrer Hadoop, vous aurez besoin de démarrer le système de fichiers HDFS et le serveur
MapReduce dans le cas où vous souhaitez utiliser des jobs MapReduce.
La commande suivante démarre le système de fichiers HDFS.
$ start-dfs.sh
Affichage obtenu :
Starting namenodes on [localhost]
localhost: starting namenode, logging to
/usr/local/hadoop/logs/hadoop-amal-namenode-amal-virtual-machine.out
localhost: starting datanode, logging to
/usr/local/hadoop/logs/hadoop-amal-datanode-amal-virtual-machine.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to
/usr/local/hadoop/logs/hadoop-amal-secondarynamenode-amal-virtual-
machine.out
11 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
Il faut ensuite démarrer le serveur MapReduce en exécutant la commande suivante :
$ start-yarn.sh
Affichage obtenu :
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-
amal-resourcemanager-amal-virtual-machine.out
localhost: starting nodemanager, logging to
/usr/local/hadoop/logs/yarn-amal-nodemanager-amal-virtual-machine.out
Pour s'assurer que tout fonctionne, 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
Depuis la version 2.3.x de Hadoop, ResourceManager remplace JobTracker.
Vous pouvez également vérifier si les démons ont commencé avec succès en regardant fichiers de logs
dans le répertoire des logs (dans le répertoire d'installation Hadoop) ou en regardant la bande interfaces,
à l'adresse http://localhost:8088/ pour le ResourceManager et à l'adresse http://localhost:50070/
pour la NameNode.
Les figures 1 et 2 illustrent respectivement les interfaces web du ResourceManager et du NameNode.
Figure 1. ResourceManager : interface web
12 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
Figure 2. NameNode : Interface Web
Enfin, pour arrêter un serveur Hadoop, vous devrez utiliser la commande suivante pour interrompre le
serveur de fichiers HDFS :
$ stop-dfs.sh
13 ENIS – GI 3 – 2017/2018 Mme. Amal ABID
et la commande suivante pour interrompre le serveur MapReduce :
$ stop-yarn.sh
Remarque :
Pour utiliser la ligne de commande sous HDFS (hadoop fs –[generic option]), n’oublierez jamais de
démarrer HDFS (start-dfs.sh).
Même remarque pour l’utilisation de yarn (start-yarn.sh).
Remarques :
 Si l’interface web du ResourceManager n’a pas été affichée vous devez vérifier la configuration
des fichiers « mapred-site.xml » et « yarn-site.xml ».
 Si l’interface web du NameNode n’a pas été affichée vous devez vérifier la configuration des
fichiers « core-site.xml » et « hdfs-site.xml », et suivre les étapes suivantes :
o Lancez la commande : hdfs namenode
o Généralement vous aurez comme exception : NameNode is not formatted
o Lancez les commandes : stop-dfs.sh et stop-yarn.sh
o Vérifiez la configuration des fichiers « core-site.xml » et « hdfs-site.xml ». Cette
exception peut être dû à l’oublie de la sauvegarde des modifications nécessaires sur
ces fichiers.
o Supprimez le contenu des deux dossiers (le contenu des dossiers, pas les dossiers!) :
/usr/local/hadoop/hadoopdata/hdfs/namenode
/usr/local/hadoop/hadoopdata/hdfs/datanode
o Refaites le formatage : hdfs namenode –format
o Lancez les commandes : start-dfs.sh et start-yarn.sh
o Lancez la commande : jps
Le namenode et le datanode doivent apparaitre dans la liste.
o Consultez la page http://localhost:50070/
5. Enjoy Hadoop!

Contenu connexe

Tendances

Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopLilia Sfaxi
 
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_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6Amal Abid
 
TP2 Big Data HBase
TP2 Big Data HBaseTP2 Big Data HBase
TP2 Big Data HBaseAmal Abid
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introductionMouna Torjmen
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 

Tendances (20)

Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
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_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Une Introduction à Hadoop
Une Introduction à HadoopUne Introduction à Hadoop
Une Introduction à Hadoop
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
 
TP2 Big Data HBase
TP2 Big Data HBaseTP2 Big Data HBase
TP2 Big Data HBase
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introduction
 
Hadoop
HadoopHadoop
Hadoop
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Une introduction à MapReduce
Une introduction à MapReduceUne introduction à MapReduce
Une introduction à MapReduce
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 

Similaire à Installation hadoopv2.7.4-amal abid

Similaire à Installation hadoopv2.7.4-amal abid (20)

Hadoop MapReduce.docx
Hadoop  MapReduce.docxHadoop  MapReduce.docx
Hadoop MapReduce.docx
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
 
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 )
 
Hadoop
HadoopHadoop
Hadoop
 
HDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien HardyHDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien Hardy
 
APACHE HTTP
APACHE HTTPAPACHE HTTP
APACHE HTTP
 
Hadoop
HadoopHadoop
Hadoop
 
Atelier 5
Atelier 5Atelier 5
Atelier 5
 
2020 (1)
2020 (1)2020 (1)
2020 (1)
 
Nagios
NagiosNagios
Nagios
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Snort implementation
Snort implementationSnort implementation
Snort implementation
 
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
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOps
 
Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5Rapport d'installation de Linux Engine X MariaDB PHP5
Rapport d'installation de Linux Engine X MariaDB PHP5
 
Install arch ultrabook full luks ssd
Install arch ultrabook full luks ssdInstall arch ultrabook full luks ssd
Install arch ultrabook full luks ssd
 

Installation hadoopv2.7.4-amal abid

  • 1. 1 ENIS – GI 3 – 2017/2018 Mme. Amal ABID Projet Big Data Partie I : Installation et configuration de Hadoop 2 - Pseudodistributed Mode Présentation Cette partie de projet s'intéresse à l'installation et la configuration d'un cluster Hadoop simple nœud en utilisant la version proposée par la fondation Apache. Nous décrirons comment réaliser une telle installation dans un système virtualisé Linux (Ubuntu 16.04). Bien entendu, Hadoop n'a d'intérêt que s'il est utilisé dans un cluster composé de plusieurs machines. En effet, utiliser Hadoop dans un environnement simple nœud, comme nous allons le faire, n'a de sens que pour tester la configuration de l'installation ou fournir un environnement de développement MapReduce. Pour télécharger Hadoop deux solutions sont disponibles. La première solution est d'utiliser la version proposée par la fondation Apache. Cette version est celle de référence et contient le noyau et quelques interfaces d'administration très simplifiée. La seconde solution est d'utiliser les distributions fournies par des entreprises qui font du service autour de Hadoop. Comme il y a une valeur ajoutée non négligeable, ces distributions fournissent des services payants. Sans être exhaustif, voici trois sociétés qui font de Hadoop leur spécialité.  Cloudera : http://www.cloudera.com/  Hortonworks : http://hortonworks.com/  MapR Technologies : http://www.mapr.com/ Dans le cadre de ce cours, nous utiliserons la distribution Hadoop fournie par Apache. Par ailleurs, si nous consultons le site de la fondation Apache, on se retrouve avec quatre versions majeures Hadoop. À l'écriture de ce cours, il s'agissait des versions 0.23.X, 1.2.X, 2.2.X et 2.X.X. Les trois premières versions correspondent à des versions stables et aptes à passer en production. La dernière est la version en cours.
  • 2. 2 ENIS – GI 3 – 2017/2018 Mme. Amal ABID I. Environnement de travail L’installation de Hadoop 2 dans ce cours sera réalisée dans un environnement Linux virtualisé (Ubuntu 16.04 LTS). Il est préférable d’utiliser VMware 10 : https://drive.google.com/folderview?id=0B4fI_1marvBZR2haeVRrRmJFOEE&usp=sharing Et créer une machine virtuelle Ubuntu 16.04 LTS : https://drive.google.com/folderview?id=0B4fI_1marvBZOU00Y0lWZXRwUm8&usp=sharing II. Prérequis 1. Mise à jour du système Pour maintenir à jour le système de la machine virtuelle, utilisez la commande suivante : $ sudo apt-get update 2. Putty (optionnel) Si vous êtes intéressés d’utiliser SSH pour vous connectez à la machine virtuelle. Vous pouvez utiliser la commande ssh directement sur Ubuntu ou installer un logiciel tel que Putty pour les PCs contenant Windows 8.1 (et moins). Dans votre pc, installez Putty : lien de téléchargement : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Dans la machine virtuelle, installez le serveur OpenSSH pour permettre le contrôle à distance au client SSH Putty : $ sudo apt-get install openssh-server Dans le “Settings” de la VM, mettez le réseau à « Bridged » ou à «NAT » selon votre type de connexion à fin d’avoir une connexion dans la VM:
  • 3. 3 ENIS – GI 3 – 2017/2018 Mme. Amal ABID 3. Java Hadoop est écrit en Java, donc vous aurez besoin d'avoir Java installé sur votre machine (version 7 ou ultérieure). Pour ce cours, la version 8 de Java sera utilisée via la distribution OpenJDK. Voir commande ci-dessous pour installer OpenJDK 8 sur un Linux. $ sudo apt-get install openjdk-8-jdk Après l'installation, assurez-vous que la version Java est correctement installée. $ java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode) III. Installation Dans ce cours, nous ciblons la dernière version stable Hadoop 2.7.4 (la version 2.8.1 est encore instable et Hadoop 3.0.0 est encore en version alpha). Téléchargez le fichier compressé à travers la commande suivante : $ wget http://www.eu.apache.org/dist/hadoop/common/stable2/hadoop-2.7.4.tar.gz Décompressez l'archive de Hadoop via la commande suivante : $ tar xzf hadoop-2.7.4.tar.gz Déplacez le répertoire hadoop-2.7.4 vers /usr/local sous le nom hadoop : $ sudo mv hadoop-2.7.4 /usr/local/hadoop Avant de pouvoir exécuter Hadoop, vous devez lui dire où Java est situé sur votre système. Si vous avez la variable d'environnement JAVA_HOME mis au point avec une installation de Java appropriée, vous n'avez rien à configurer. C'est très pratique de créer une variable d'environnement (HADOOP_HOME) qui pointe vers le répertoire d'installation Hadoop et de mettre le répertoire binaire Hadoop sur votre chemin de ligne de commande (PATH). (En Hadoop 2.0 ou ultérieure, vous devrez mettre le répertoire sbin sur le "PATH" aussi). Seul le fichier de configuration utilisateur .bashrc a besoin d'être modifié afin qu'il propage les nouvelles valeurs des variables d'environnement.
  • 4. 4 ENIS – GI 3 – 2017/2018 Mme. Amal ABID Ouvrez le fichier /home/etudiant/.bashrc (avec la commande « nano » ou « gedit ») $ nano /home/etudiant/.bashrc Puis ajoutez à la fin du fichier les lignes suivantes : (PS : Vérifiez le chemin de Java dans votre machine) # Java Environment Variable export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # Hadoop Environment Variables export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" Pour que le système prenne en compte la modification, redémarrez la machine : [sudo reboot] ou bien recharger le fichier ~/.bashrc : [source ~/.bashrc]. Le fichier $HADOOP_HOME/etc/hadoop/hadoop-env.sh contient des variables d'environnement utilisées par Hadoop. Décommentez (ou modifiez) celle de la variable JAVA_HOME. # The java implementation to use. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 Vérifiez que Hadoop s'exécute en tapant : $ hadoop version Hadoop 2.7.4 Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r cd915e1e8d9d0131462a0b7301586c175728a282 Compiled by kshvachk on 2017-08-01T00:29Z Compiled with protoc 2.5.0 From source with checksum 50b0468318b4ce9bd24dc467b7ce1148 This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.4.jar
  • 5. 5 ENIS – GI 3 – 2017/2018 Mme. Amal ABID IV. Configuration 1. Fichiers de configuration Hadoop Tous les fichiers de configuration de Hadoop sont disponibles dans le répertoire /etc/hadoop. Les fichiers de configuration de Hadoop fonctionnent sur le principe de clé/valeur : la clé correspondant au nom du paramètre et valeur à la valeur assignée à ce paramètre. Ces fichiers de configuration utilisent le format XML. Les nouveaux paramètres sont à ajouter entre la balise <configuration> … </configuration>. Chaque propriété de ce fichier est de la forme : <property> <name>nom de la propriété</name> <value>valeur de la propriété</value> </property> Nous ne pouvons pas être exhaustifs sur les modifications à apporter sur ces fichiers de configuration. Nous nous limiterons donc aux paramètres de base pour exécuter un cluster Hadoop composé d'un nœud. Pour plus d'informations sur les paramètres autorisés, nous vous invitons à consulter les liens que nous donnerons pour chaque fichier modifié. a. core-site.xml Le fichier $HADOOP_HOME/etc/hadoop/core-site.xml est le fichier général de la configuration de la plate-forme. Il contient des informations telles que le numéro de port utilisé par l'instance Hadoop, la mémoire allouée pour le système de fichiers, la limite de mémoire pour stocker les données et la taille des tampons de lecture/écriture. Dans ce fichier, modifiez le contenu afin d'obtenir le résultat ci-dessous : <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> <description>The name of the default file system.</description> </property> </configuration> La propriété fs.defaultFS permet de spécifier quant à elle le nom du système de fichier. Hdfs:// localhost/ est utilisé pour définir un système de fichiers par défaut pour Hadoop. Les systèmes de fichiers sont spécifiés par un URI, et ici nous avons utilisé un HDFS URI pour configurer Hadoop à utiliser HDFS par défaut. Les démons HDFS vont utiliser cette propriété pour déterminer l'hôte et le port du NameNode HDFS. ! Dans la plupart des tutoriels disponibles sur la toile, le nom fs.default.name était couramment utilisé. Celui-ci est devenu deprecated et est remplacé par fs.defaultFS.
  • 6. 6 ENIS – GI 3 – 2017/2018 Mme. Amal ABID ! Plus d'informations sur les paramètres autorisés dans core-site.xml sont disponibles ici : core- site.xml b. hdfs-site.xml Le fichier $HADOOP_HOME/etc/hadoop/hdfs-site.xml contient les paramètres spécifiques au système de fichiers HDFS : le nombre de réplication des données, le chemin de NameNode et les chemins des DataNodes dans les systèmes de fichiers locaux. Il désigne l'endroit où vous souhaitez stocker l'infrastructure Hadoop. <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/hadoopdata/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/hadoopdata/hdfs/datanode</value> </property> </configuration> Le paramètre dfs.replication permet de préciser le nombre de réplication d'un block. La valeur sera 1 puisque notre cluster ne se compose que d'un nœud. En effet, nous avons mis cette propriété, à 1 afin que HDFS ne réplique pas le blocs du système de fichiers par le facteur par défaut 3. Lors de l'exécution d'une seule datanode, HDFS ne peut pas reproduire les blocs à trois datanodes, de sorte qu'il soit en avertissement continu sur les blocs étant sous-répliqués. Ce paramètre permet de résoudre ce problème. La propriété dfs.namenode.name.dir détermine l'endroit où le NameNode de HDFS doit stocker la "name table" (fsimage) sur le système de fichiers local. La propriété dfs.datanode.data.dir détermine l'endroit où un DataNode de HDFS doit stocker ses blocs sur le système de fichiers local. ! Plus d'informations sur les paramètres autorisés dans hdfs-site.xml sont disponibles ici : hdfs- default.xml
  • 7. 7 ENIS – GI 3 – 2017/2018 Mme. Amal ABID Créez les répertoires de NameNode et DataNode et changez le propriétaire du dossier «hadoop» et les dossiers et fichiers contenus à l’intérieur de ce dossier. $ cd $ mkdir -p /usr/local/hadoop/hadoopdata/hdfs/namenode $ mkdir -p /usr/local/hadoop/hadoopdata/hdfs/datanode $ sudo chown etudiant:etudiant -R /usr/local/Hadoop c. mapred-site.xml Le fichier $HADOOP_HOME/etc/hadoop/mapred-site.xml contient les paramètres spécifiques à MapReduce. Depuis la version 2.x de Hadoop avec l'arrivée de Yarn, ce fichier de configuration est épaulé par yarn-site.xml. Ainsi, si vous souhaitez utiliser Yarn comme implémentation de MapReduce, il faudra tout d'abord renommer/copier le fichier par defaut $HADOOP_HOME/etc/hadoop/mapred-site.xml.template en $HADOOP_HOME/etc/hadoop/mapred-site.xml. Puis, il faudra configurer le fichier mapred-site.xml comme présenté ci-dessous (PS : La 1ère commande doit être sur la même ligne). $ cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml $ nano $HADOOP_HOME/etc/hadoop/mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ! Plus d'informations sur les paramètres autorisés dans mapred-site.xml sont disponibles ici : mapred-site.xml. d. yarn-site.xml Puisque nous visons installer Hadoop v2, nous devons configurer le fichier $HADOOP_HOME/etc/hadoop/yarn-site.xml. <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property>
  • 8. 8 ENIS – GI 3 – 2017/2018 Mme. Amal ABID <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> ! Plus d'informations sur les paramètres autorisés dans yarn-site.xml sont disponibles ici : yarn- default.xml. 2. Configuration SSH Hadoop nécessite un accès SSH pour gérer les différents nœuds. Bien que nous soyons dans une configuration simple nœud, nous avons besoin de configurer l'accès vers localhost. Tout d'abord, assurez-vous que SSH est installé et un serveur est en cours d'exécution. Sur Ubuntu, ce résultat est obtenu avec : $ sudo apt-get install ssh Puis, pour activer un login sans mot de passe, générez une nouvelle clé SSH avec un mot de passe vide. $ ssh-keygen -t rsa -P "" Generating public/private rsa key pair. Enter file in which to save the key (/home/amal/.ssh/id_rsa): Created directory '/home/amal/.ssh'. Your identification has been saved in /home/amal/.ssh/id_rsa. Your public key has been saved in /home/amal/.ssh/id_rsa.pub. The key fingerprint is: SHA256:6x4uPYsRJ6/J3bYAGmccyyv+QRFm8UGsYtoSir2e5M8 amal@amal-virtual- machine The key's randomart image is: +---[RSA 2048]----+ | =+o | | o o.. | | o.. | | . oo.+ | |.o =..@ S | |o + .* B . | | .oo +.= | | o.+ o.Xo+. | | .+.E.*o*+o. | +----[SHA256]-----+ Cette commande va créer une paire de clés RSA (publique/privée) avec un mot de passe vide. Dans notre cas de test et de virtualisation, l'absence de mot de passe n'a pas d'importance. Assurez-vous d'en fixer un si votre serveur est accessible depuis l'extérieur. Vous devez ensuite autoriser l'accès au SSH de la machine avec cette nouvelle clé fraîchement créée.
  • 9. 9 ENIS – GI 3 – 2017/2018 Mme. Amal ABID $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys La dernière chose à réaliser est de tester la connexion SSH. $ ssh localhost The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:0Xdp/TXQvQKT9nzZ434ieIvIsbU8f0YbnbVr5wIIZes. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 537 paquets peuvent être mis à jour. 272 mises à jour de sécurité. Last login: Mon Sep 18 21:31:55 2017 from 192.168.32.1 En cas de succès, vous ne devriez pas taper un mot de passe. 3. Initialisation du système de fichier HDFS Avant de démarrer le serveur Hadoop, vous devez formater le système de fichiers HDFS. Comme tout système de fichiers, il est nécessaire de le formater avant son utilisation. Dans le cas de cette installation d'un cluster simple nœud, seul le système de fichiers HDFS de votre machine locale sera formaté. Pour cela, il suffit d’exécuter la commande hadoop système suivante : $ hdfs namenode –format L'exécution du formatage devrait ressembler à cela : 17/09/18 22:38:54 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = amal-virtual-machine/127.0.1.1 STARTUP_MSG: args = [–format] STARTUP_MSG: version = 2.7.4 STARTUP_MSG: classpath = /usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/lib/jaxb- api-2.2.2.jar:/usr/local/hadoop/share/hadoop/common/lib/gson- … … … STARTUP_MSG: build = https://shv@git-wip- us.apache.org/repos/asf/hadoop.git -r cd915e1e8d9d0131462a0b7301586c175728a282; compiled by 'kshvachk' on 2017-08-
  • 10. 10 ENIS – GI 3 – 2017/2018 Mme. Amal ABID 01T00:29Z STARTUP_MSG: java = 1.8.0_131 ************************************************************/ 17/09/18 22:38:54 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT] 17/09/18 22:38:55 INFO namenode.NameNode: createNameNode [–format] Usage: java NameNode [-backup] | [-checkpoint] | [-format [-clusterid cid ] [-force] [-nonInteractive] ] | [-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] ] | [-upgradeOnly [-clusterid cid] [-renameReserved<k-v pairs>] ] | [-rollback] | [-rollingUpgrade <rollback|downgrade|started> ] | [-finalize] | [-importCheckpoint] | [-initializeSharedEdits] | [-bootstrapStandby] | [-recover [ -force] ] | [-metadataVersion ] ] 17/09/18 22:38:56 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at amal-virtual-machine/127.0.1.1 ************************************************************/ Remarque : Si la commande « hdfs namenode –format » n’a pas fonctionné convenablement, essayez la commande suivante : $ hadoop namenode –format 4. Démarrage et arrêt d'un serveur Hadoop Pour démarrer Hadoop, vous aurez besoin de démarrer le système de fichiers HDFS et le serveur MapReduce dans le cas où vous souhaitez utiliser des jobs MapReduce. La commande suivante démarre le système de fichiers HDFS. $ start-dfs.sh Affichage obtenu : Starting namenodes on [localhost] localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-amal-namenode-amal-virtual-machine.out localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-amal-datanode-amal-virtual-machine.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-amal-secondarynamenode-amal-virtual- machine.out
  • 11. 11 ENIS – GI 3 – 2017/2018 Mme. Amal ABID Il faut ensuite démarrer le serveur MapReduce en exécutant la commande suivante : $ start-yarn.sh Affichage obtenu : starting yarn daemons starting resourcemanager, logging to /usr/local/hadoop/logs/yarn- amal-resourcemanager-amal-virtual-machine.out localhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-amal-nodemanager-amal-virtual-machine.out Pour s'assurer que tout fonctionne, 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 Depuis la version 2.3.x de Hadoop, ResourceManager remplace JobTracker. Vous pouvez également vérifier si les démons ont commencé avec succès en regardant fichiers de logs dans le répertoire des logs (dans le répertoire d'installation Hadoop) ou en regardant la bande interfaces, à l'adresse http://localhost:8088/ pour le ResourceManager et à l'adresse http://localhost:50070/ pour la NameNode. Les figures 1 et 2 illustrent respectivement les interfaces web du ResourceManager et du NameNode. Figure 1. ResourceManager : interface web
  • 12. 12 ENIS – GI 3 – 2017/2018 Mme. Amal ABID Figure 2. NameNode : Interface Web Enfin, pour arrêter un serveur Hadoop, vous devrez utiliser la commande suivante pour interrompre le serveur de fichiers HDFS : $ stop-dfs.sh
  • 13. 13 ENIS – GI 3 – 2017/2018 Mme. Amal ABID et la commande suivante pour interrompre le serveur MapReduce : $ stop-yarn.sh Remarque : Pour utiliser la ligne de commande sous HDFS (hadoop fs –[generic option]), n’oublierez jamais de démarrer HDFS (start-dfs.sh). Même remarque pour l’utilisation de yarn (start-yarn.sh). Remarques :  Si l’interface web du ResourceManager n’a pas été affichée vous devez vérifier la configuration des fichiers « mapred-site.xml » et « yarn-site.xml ».  Si l’interface web du NameNode n’a pas été affichée vous devez vérifier la configuration des fichiers « core-site.xml » et « hdfs-site.xml », et suivre les étapes suivantes : o Lancez la commande : hdfs namenode o Généralement vous aurez comme exception : NameNode is not formatted o Lancez les commandes : stop-dfs.sh et stop-yarn.sh o Vérifiez la configuration des fichiers « core-site.xml » et « hdfs-site.xml ». Cette exception peut être dû à l’oublie de la sauvegarde des modifications nécessaires sur ces fichiers. o Supprimez le contenu des deux dossiers (le contenu des dossiers, pas les dossiers!) : /usr/local/hadoop/hadoopdata/hdfs/namenode /usr/local/hadoop/hadoopdata/hdfs/datanode o Refaites le formatage : hdfs namenode –format o Lancez les commandes : start-dfs.sh et start-yarn.sh o Lancez la commande : jps Le namenode et le datanode doivent apparaitre dans la liste. o Consultez la page http://localhost:50070/ 5. Enjoy Hadoop!