Académique Documents
Professionnel Documents
Culture Documents
Présentation
Ce TP s'intéresse à l'installation et la configuration d'un cluster Hadoop simple nœud. Nous décrirons
comment réaliser une telle installation dans un système virtualisé Linux (Ubuntu 14.10). 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.
Dans le cadre de ce TP, 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.
I. Environnement de travail
L’installationde Hadoop 2 dans ce cours sera réalisée dans un environnement Linux virtualisé (Ubuntu
14.10 LTS). Il est préférable d’utiliser VMware 10 :
II. Prérequis
1. Mise à jour du système
Avant toutes installations de nouveaux paquets, mettez à jour le cache des paquets sur votre machine.
La commande suivante téléchargera la nouvelle liste des paquets proposés par le dépôt.
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:
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. La commande pour
installer OpenJDK 8 sur un Linux.
$ java -version
Nous emploierons un utilisateur Hadoop spécifique pour exécuter un nœud Hadoop. Bien que celui-
ci ne soit pas requis, il est fortement recommandé de séparer les installationsdes logiciels afin de
garantir les problèmes de sécurité et de permissions.
Un utilisateur hduser avec le mot de passe hduser sera créé et ajouté au groupe hadoop.
4. Configuration SSH
Hadoop nécessite un accès SSH pour gérer les différents nœuds et pour vous connectez à la machine
virtuelle.
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 :
5. Configuration SSH
$ sudo su hduser
$ ssh-keygen -t rsa -P ""
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.
Vous devez ensuite autoriser l'accès au SSH de la machine avec cette nouvelle clé fraîchement créée.
$ ssh localhost
III. Installation
Dans ce cours, nous ciblons la dernière version stable Hadoop 2.7.4 .
$ wget http://www.eu.apache.org/dist/hadoop/common/stable2/hadoop-2.7.4.tar.gz
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.
Puis ajoutez à la fin du fichier les lignes suivantes : (PS : Vérifiez le chemin de Java dans votre
machine)
$ 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
IV. Configuration
Tous les fichiers de configuration de Hadoop sont disponibles dans le répertoire /etc/hadoop.
<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.
1. core-site.xml
<configuration>
/*--- contenue a jouter--- */
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</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.
2. hdfs-site.xml
<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>
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.
3. yarn-site.xml
Ce fichier est utilisé pour la configuration du yarn sur hadoop. ous devons configurer le fichier
$HADOOP_HOME/etc/hadoop/yarn-site.xml.
<configuration>
<property>
<property>
<name>yarn.nodemanager.aux-services</name>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<value>mapreduce_shuffle</value>
</property>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
4. mapred-site.xml
Ce fichier est utilisé pour spécifier quel Framework MapReduce nous utilisons. Par default, Hadoop
contient un Template pour mapred-site.xml. Avant tout, vous devez copier le fichier mapred-
site.xml.template vers le fichier mapred-site.xml en utilisant la commande ci-dessus :
$ cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
Formatter namenode
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 noeud, 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 :
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.
$ start-dfs.sh
$ start-yarn.sh
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
$ 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).
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 configurationdes 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/