Vous êtes sur la page 1sur 6

Big Data & Data Analysis

Mme. HDIOUD Ferdaous

Installation de Hadoop 2 via paquets & Configuration:

I. Pré-requis :
L'installation ou la vérification d'un ensemble de 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) Java (version Sun ou OpenJDK).

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 7 de Java sera utilisée via la distribution OpenJDK. Voir commande ci-dessous pour
installer OpenJDK 7 sur un Linux.
$ sudo apt-get install openjdk-7-jdk

Après l'installation, assurez-vous que la version Java est correctement installée.

$ java -version

3) Creation de group et user d’Hadoop

La création d'un groupe et d'un utilisateur spécifique à Hadoop (non obligatoire mais recommandé).

$ addgroup hadoop
$ adduser --ingroup hadoop hadoopuser
$ adduser hadoopuser

N.B. ajout des utilisateurs et groupes et dédié au super-utilisateur root. Ces commandes doivent être
exécutées après l’authentification (avec la commande sudo su).

4) Installation et Configuration de SSH

Afin de permettre l'accès vers localhost pour l'utilisateur hadoopuser :

$ sudo apt-get install ssh


$ ssh-keygen -t rsa -P ""
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost
Big Data & Data Analysis
Mme. HDIOUD Ferdaous

II. Installation Manuelle Hadoop :


1) Téléchargement

Nous ciblons la dernière version stable Hadoop 2.9.1.

 Téléchargez le fichier compressé à travers la commande suivante :

$ wget http://www.eu.apache.org/dist/hadoop/common/stable2/hadoop-2.9.1.tar.gz

 Décompressez l'archive de Hadoop via la commande suivante :


$ tar xzf hadoop-2.9.1.tar.gz

 Déplacez le répertoire hadoop-2.9.1 vers /usr/local sous le nom hadoop :

$ sudo mv hadoop-2.7.4 /usr/local/hadoop

2) Déclaration des variables d’environnement

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.

 Ouvrez le fichier /etc/.bashrc (avec la commande « nano » ou « gedit »)

$ nano /home/etudiant/.bashrc
Big Data & Data Analysis
Mme. HDIOUD Ferdaous

 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 HADOOP_INSTALL =$HADOOP_HOME
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_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop
Pour que le système prenne en compte la modification, redémarrez la machine : [sudo reboot].

Vérifiez que Hadoop s'exécute en tapant :

$ hadoop version

Testez la Commande suivante:


$ ./bin/hadoop

III. Configuration d’Hadoop :


1) Fichiers de configuration

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>
Big Data & Data Analysis
Mme. HDIOUD Ferdaous

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 noeud. Pour plus
d'informations sur les paramètres autorisés, nous vous invitons à consulter les liens que nous donnerons pour
chaque fichier modifié.

 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.

 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.

<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>

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 noeud. 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
Big Data & Data Analysis
Mme. HDIOUD Ferdaous

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.

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 hadoopuser -R /usr/local/Hadoop

 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 :

$ 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>

 yarn-site.xml
Puisque nous visons installer Hadoop v2, nous devons configurer le fichier
$HADOOP_HOME/etc/hadoop/yarn-site.xml.
Big Data & Data Analysis
Mme. HDIOUD Ferdaous

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

2) Initialisation du système de fichiers 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 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 :

$ hdfs namenode –format

Remarque: Si la commande ci-dessus n’a pas fonctionné, essayer la suivante :

$ hadoop namenode –format

3) 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
Il faut ensuite démarrer le serveur MapReduce en exécutant la commande suivante :

$ 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