Vous êtes sur la page 1sur 13

Procedure d’installation de HADOOP

Pré-requis
On suppose que vous disposez d’une version fraîchement installée de Ubuntu 18.04.LTS.
Sinon vous devrez peut-être adapter certaines commandes à votre distribution de Linux.
Vous devrez également disposer des droits d’utilisateur sudo.

Télécharger et installer Java


Saisissez les commandes suivantes pour mettre à jour le répertoire des sources et
installer Java:

sudo apt-get update

sudo apt install default-jdk

Vérifiez que l’installation s’est bien déroulée:

java -version

Ce qui devrait produire en sortie un résultat similaire à ceci:

openjdk version "1.8.0_191"

OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0-18.04.1-b12)

OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Configurer SSH
SSH est la méthode de connexion sécurisée utilisée par Hadoop pour la communication
entre les nœuds du cluster. Passez à la section suivante si vous disposez déjà d’une
connexion SSH et que votre machine peut se connecter à elle-même.

Générez une paire clé privée/clé publique à l’aide des commandes suivantes :

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa


cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 0600 ~/.ssh/authorized_keys

Pour permettre une connexion à la machine, nous avons besoin du serveur SSH qui n’est
pas installé par défaut sur la version Desktop de Ubuntu 18.04. Installez le serveur
OpenSSH:

sudo apt-get install openssh-server -y

À la fin de l’installation, ouvrez le fichier ssh_config et modifiez les configurations de la


façon suivante:

sudo gedit /etc/ssh/ssh_config

Identifiez la ligne #    StrictHostKeyChecking et décommentez-la en lui attribuant la


valeur no comme ci-dessous:

...

# ConnectTimeout no

StrictHostKeyChecking no

# IdentityFile ~/.ssh/id_rsa

...

Enregistrez et fermez le fichier. Redémarrez le service SSH:

sudo service ssh restart

Lancez une connexion SSH à votre machine pour vous assurer que le tout fonctionne
bien, puis tapez exit pour fermer la connexion:

ssh localhost

exit

Préparer le répertoire d’installation


Créez un répertoire hadoop-stack qui contiendra Hadoop et éventuellement d’autres
applications qui composent l’écosystème, et attribuez-vous les droits sur le répertoire :

sudo mkdir /usr/local/hadoop-stack

sudo chown $USER:$USER /usr/local/hadoop-stack

Télécharger et installer Hadoop


Rendez-vous dans votre répertoire par défaut et téléchargez Hadoop 2.9.2:

cd ~

wget https://www.apache.org/dist/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

Extrayez les fichiers de l’archive:

tar xzvf hadoop-2.9.2.tar.gz

Une fois l’extraction complétée, on peut supprimer l’archive et déplacer le nouveau


répertoire vers le répertoire hadoop-stack que nous avions créé plus tôt:

rm hadoop-2.9.2.tar.*

mv hadoop-2.9.2 /usr/local/hadoop-stack

Créez ensuite un lien symbolique /usr/local/hadoop qui pointe


vers /usr/local/hadoop-stack/hadoop-2.9.2:

sudo ln -s /usr/local/hadoop-stack/hadoop-2.9.2 /usr/local/hadoop

Configurer Hadoop
Variables d’environnement
Éditez un nouveau fichier hadoop.sh pour inscrire les variables d’environnement utiles à
l’exécution de Hadoop. Nous créerons ce fichier sous le
répertoire /etc/profile.d/ pour qu’il soit disponible à tous les utilisateurs de la
machine, mais vous pouvez insérer les mêmes instructions qui suivent dans le
fichier ~/.bashrc. Ajouter les variables d’environnement comme suit:

sudo gedit /etc/profile.d/hadoop.sh

# Java

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$PATH:$JAVA_HOME/bin

# Hadoop

export HADOOP_HOME=/usr/local/hadoop

export HADOOP_INSTALL=$HADOOP_HOME

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HADOOP_DATA_HOME=$HADOOP_HOME/data/hdfs

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"

export YARN_HOME=$HADOOP_HOME

export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib/*:.

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

Exécutez la commande source /etc/profile.d/hadoop.sh pour que les modifications


soient immédiatement prises en compte.

Vérifiez ensuite que les propriétés sont bien ajoutées en exécutant par exemple echo
$HADOOP_HOME, ce qui devrait afficher /usr/local/hadoop.

Créez les répertoires où Hadoop stockera certains fichiers comme les logs d’exécution.
Ces répertoires seront créés sous $HADOOP_DATA_HOME:
mkdir -p $HADOOP_DATA_HOME/namenode

mkdir -p $HADOOP_DATA_HOME/datanode

mkdir -p $HADOOP_DATA_HOME/tmp

Pour finir, éditez le fichier hadoop-env.sh pour inscrire le lien vers l’installation de Java.


Localisez et modifiez la ligne #export JAVA_HOME=${JAVA_HOME} comme ci-dessous
(n’oubliez pas de décommenter – retirer le caractère #):

cd $HADOOP_CONF_DIR

gedit hadoop-env.sh

...

# The java implementation to use

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

...

Enregistrez et fermez le fichier. Confirmez la modification en exécutant source hadoop-


env.sh.

Fichier core-site.xml
C’est le principal fichier de configuration de Hadoop. Éditez-le et ajoutez-y les propriétés
suivantes entre les balises <configuration></configuration>:

cd $HADOOP_CONF_DIR

gedit core-site.xml

<configuration>

<!-- Custom properties -->

<property>

<name>thisdatahome</name>
<value>/usr/local/hadoop/data/hdfs</value>

</property>

<!-- Hadoop properties -->

<property>

<name>hadoop.tmp.dir</name>

<value>${thisdatahome}/tmp</value>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</property>

</configuration>

Vous pouvez consulter ici la liste exhaustive des propriétés du fichier core-


site.xml incluant leur description.

Fichier hdfs-site.xml
Éditez le fichier hdfs-site.xml de la même manière en ajoutant les paramètres de
configuration suivants:

gedit hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>
</property>

<property>

<name>dfs.permissions.enabled</name>

<value>false</value>

</property>

<!-- Namenode config -->

<property>

<name>dfs.namenode.name.dir</name>

<value>file://${thisdatahome}/namenode</value>

</property>

<property>

<name>dfs.namenode.http-address</name>

<value>localhost:50070</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>localhost:50090</value>

</property>

<!-- Datanode config -->

<property>
<name>dfs.datanode.data.dir</name>

<value>file://${thisdatahome}/datanode</value>

</property>

</configuration>

Consultez la liste des propriétés du fichier hdfs-site.xml pour plus de détails.

Fichier mapred-site.xml
Créez le fichier mapred-site.xml à partir du template fourni et ajoutez-y les propriétés
comme ci-dessous:

cp mapred-site.xml.template mapred-site.xml

gedit mapred-site.xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobtracker.address</name>

<value>localhost:54311</value>

</property>

</configuration>

Consultez la liste des propriétés du fichier mapred-site.xml pour plus de détails.


Fichier yarn-site.xml
Éditez le fichier yarn-site.xml et ajoutez les propriétés suivantes:

gedit yarn-site.xml

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>localhost</value>

</property>

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

Ceci complète les modifications pour les fichiers de configuration.

Démarrer Hadoop
Avant de démarrer Hadoop pour la première fois, il faut formater le système de fichiers
HDFS. Pour ce faire, exécutez la commande suivante:
hadoop namenode -format

Vous devriez obtenir en sortie un résultat similaire à ceci:

On peut maintenant démarrer Hadoop à l’aide des commandes suivantes, pour démarrer
HDFS et ensuite Yarn:

start-dfs.sh

start-yarn.sh

Lorsque les services sont démarrés, lancez la commande jps pour vérifier lesquels sont
fonctionnels. Vous devez au minimum obtenir les services suivants (l’ordre et le numéro
de processus peuvent être différents):
jps

5376 DataNode

5601 SecondaryNameNode

5986 NodeManager

5813 ResourceManager

5190 NameNode

6279 Jps

Si l’un de ces services est manquant, il se peut que vous ayez une erreur de
configuration. Commencez par vérifier les fichiers de logs en vous rendant sous le
répertoire $HADOOP_HOME/logs. Si par exemple le NameNode n’est pas démarré, vérifiez les
fichiers correspondants au namenode.

Si les services sont présents, Hadoop est fonctionnel sur votre machine. Bravo!
Rendez-vous à l’adresse http://localhost:50070 pour accéder à une interface
graphique comme celle ci:

Vous pouvez  voir le contenu de HDFS (pour l’instant il n’y a aucun fichier) en allant sous
le menu Utilities – Browse the file system.

Arrêter Hadoop
Pour arrêter Hadoop, utilisez les commandes suivantes:

stop-yarn.sh
stop-dfs.sh

Vous aimerez peut-être aussi