Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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.
java -version
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 :
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:
...
# ConnectTimeout no
StrictHostKeyChecking no
# IdentityFile ~/.ssh/id_rsa
...
Lancez une connexion SSH à votre machine pour vous assurer que le tout fonctionne
bien, puis tapez exit pour fermer la connexion:
ssh localhost
exit
cd ~
wget https://www.apache.org/dist/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
rm hadoop-2.9.2.tar.*
mv hadoop-2.9.2 /usr/local/hadoop-stack
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:
# 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
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
cd $HADOOP_CONF_DIR
gedit hadoop-env.sh
...
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
...
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>
<property>
<name>thisdatahome</name>
<value>/usr/local/hadoop/data/hdfs</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>${thisdatahome}/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
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>
<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>
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${thisdatahome}/datanode</value>
</property>
</configuration>
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>
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>
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
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