Apache Hadoop est devenu le cadre standard pour le traitement et le stockage des big data dans diverses industries. Conçu pour gérer de grands ensembles de données avec un grand volume et une complexité élevée, Hadoop est un cadre open-source qui peut être exécuté sur des systèmes distribués avec des centaines, voire des milliers d’ordinateurs en cluster ou de serveurs dédiés.
Installation de Java OpenJDK
Hadoop est principalement écrit en Java, donc la première étape est d’installer Java OpenJDK, qui est compatible avec la dernière version de Hadoop (v3.3.4). Commencez par mettre à jour et rafraîchir les listes de packages/répertoires sur votre système Ubuntu avec la commande suivante :
sudo apt update
Ensuite, installez Java OpenJDK 11 en exécutant la commande suivante :
sudo apt installdefault-jdk
Lorsqu’on vous le demande, tapez “y” pour confirmer et appuyez sur ENTER pour procéder à l’installation. Une fois l’installation terminée, vérifiez la version de Java en exécutant la commande suivante :
java -version
Vous devriez voir Java OpenJDK 11 installé sur votre système Ubuntu.
Configuration de l’utilisateur et de l’authentification SSH sans mot de passe
Pour exécuter Apache Hadoop, le service SSH doit être en cours d’exécution sur le système. Dans cette étape, nous allons créer un nouvel utilisateur nommé “hadoop” et configurer l’authentification SSH sans mot de passe.
Si vous n’avez pas SSH installé sur votre système, vous pouvez l’installer en exécutant la commande suivante :
sudo apt install openssh-server openssh-client pdsh
Maintenant, créez un nouvel utilisateur “hadoop” et configurez un mot de passe pour l’utilisateur avec les commandes suivantes :
sudo useradd -m -s /bin/bash hadoop sudo passwd hadoop
Ensuite, ajoutez l’utilisateur “hadoop” au groupe “sudo” afin qu’il puisse exécuter la commande “sudo” :
sudo usermod -aG sudo hadoop
Passez à l’utilisateur “hadoop” en exécutant la commande suivante :
su - hadoop
Générez des clés publiques et privées SSH en exécutant la commande suivante :
ssh-keygen -t rsa
On vous demandera de configurer un mot de passe pour la clé, mais vous pouvez appuyer sur ENTER pour le passer. Les clés SSH seront générées dans le répertoire ~/.ssh. Vérifiez la clé SSH générée en exécutant la commande suivante :
ls ~/.ssh/
Pour activer l’authentification SSH sans mot de passe, copiez la clé publique SSH (idrsa.pub) dans le fichier “authorizedkeys” et changez sa permission à 600 avec les commandes suivantes :
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
Vous pouvez vérifier la configuration sans mot de passe en vous connectant à la machine locale avec la commande suivante :
ssh localhost
Tapez “yes” pour confirmer et ajouter l’empreinte SSH, et vous devriez être connecté au serveur sans authentification par mot de passe.
Téléchargement de Hadoop
Maintenant que l’utilisateur et l’authentification SSH sans mot de passe sont configurés, nous pouvons procéder au téléchargement du package binaire Apache Hadoop et à la configuration du répertoire d’installation.
Commencez par télécharger le package binaire Hadoop (version 3.3.4) dans le répertoire de travail actuel avec la commande suivante :
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
Une fois le téléchargement terminé, extrayez le package et déplacez le répertoire extrait vers le répertoire /usr/local/hadoop avec les commandes suivantes :
tar -xvzf hadoop-3.3.4.tar.gz sudo mv hadoop-3.3.4 /usr/local/hadoop
Changez la propriété du répertoire d’installation de Hadoop pour l’utilisateur et le groupe “hadoop” :
sudo chown -R hadoop:hadoop /usr/local/hadoop
Configuration des variables d’environnement de Hadoop
Pour configurer les variables d’environnement de Hadoop, ouvrez le fichier ~/.bashrc avec un éditeur de texte :
nano ~/.bashrc
À la fin du fichier, ajoutez les lignes suivantes pour configurer les variables d’environnement de Hadoop :
# Variables d'environnement Hadoop export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export HADOOP_HOME=/usr/local/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
Enregistrez le fichier et quittez l’éditeur. Appliquez les modifications dans le fichier ~/.bashrc en exécutant la commande suivante :
source ~/.bashrc
Vérifiez les variables d’environnement en vérifiant chaque variable avec la commande echo, par exemple :
echo $JAVA_HOME echo $HADOOP_HOME echo $HADOOP_OPTS
Vous devriez voir la sortie de chaque variable d’environnement.
De plus, configurez la variable d’environnement JAVA_HOME dans le script hadoop-env.sh. Ouvrez le fichier avec un éditeur de texte :
nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Décommentez la ligne qui définit la variable d’environnement JAVA_HOME et changez sa valeur pour le répertoire d’installation de Java OpenJDK :
exportJAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Enregistrez le fichier et quittez l’éditeur.
Pour vérifier la version de Hadoop sur votre système, exécutez la commande suivante :
hadoop version
Vous devriez voir qu’Apache Hadoop 3.3.4 est installé sur votre système.
Configuration du cluster Apache Hadoop : mode Pseudo-Distribué
Dans Hadoop, vous pouvez créer un cluster en trois modes différents : mode local (standalone), mode pseudo-distribué et mode entièrement distribué. Dans cet article, nous allons configurer un cluster Apache Hadoop en mode pseudo-distribué sur un seul serveur Ubuntu.
Pour configurer le NameNode et le DataNode pour le cluster Hadoop, ouvrez le fichier core-site.xml avec un éditeur de texte :
sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml
Ajoutez les lignes suivantes au fichier, en remplaçant l’adresse IP du NameNode par la valeur appropriée :
<property> <name>fs.defaultFS</name> <value>hdfs://192.168.5.100:9000</value> </property>
Enregistrez le fichier et quittez l’éditeur.
Ensuite, créez les répertoires qui seront utilisés pour le DataNode sur le cluster Hadoop et changez leur propriété pour l’utilisateur “hadoop” :
sudo mkdir -p /home/hadoop/hdfs/{namenode,datanode} sudo chown -R hadoop:hadoop /home/hadoop/hdfs
Ouvrez le fichier hdfs-site.xml avec un éditeur de texte :
sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
Ajoutez la configuration suivante au fichier, en ajustant la valeur “dfs.replication” et en spécifiant le répertoire pour le DataNode :
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/hadoop/hdfs/datanode</value> </property>
Enregistrez le fichier et quittez l’éditeur.
Formatez le système de fichiers Hadoop en exécutant la commande suivante :
hdfs namenode-format
Démarrez le NameNode et le DataNode en exécutant la commande suivante :
start-dfs.sh
Pour vérifier que les deux processus sont en cours d’exécution, accédez à l’interface web de Hadoop NameNode en ouvrant un navigateur web et en visitant l’adresse IP du serveur suivie du port 9870 (par exemple, http://192.168.5.100:9870/). Vous devriez voir la page d’état du NameNode indiquant qu’il est actif.
Cliquez sur le menu “Datanodes” pour voir le DataNode actif sur le cluster Hadoop. La page devrait afficher le DataNode fonctionnant sur le port 9864.
Cliquez sur l’adresse Http du DataNode pour accéder à des informations détaillées sur le DataNode, y compris le répertoire de volume.
Avec le NameNode et le DataNode en cours d’exécution, il est temps de configurer et d’exécuter MapReduce sur le gestionnaire YARN (Yet Another Resource Negotiator).
Gestionnaire YARN
Pour configurer MapReduce sur YARN en mode pseudo-distribué, apportez des modifications aux fichiers de configuration mapred-site.xml et yarn-site.xml.
Ouvrez le fichier mapred-site.xml avec un éditeur de texte :
sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
Ajoutez les lignes suivantes au fichier :
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value> </property>
Enregistrez le fichier et quittez l’éditeur.
Ouvrez le fichier yarn-site.xml avec un éditeur de texte :
sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
Modifiez les configurations suivantes :
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value> </property>
Enregistrez le fichier et quittez l’éditeur.
Démarrez les démons YARN en exécutant la commande suivante :
start-yarn.sh
Accédez à l’interface web du gestionnaire de ressources Hadoop en ouvrant un navigateur web et en visitant l’adresse IP du serveur suivie du port 8088 (par exemple, http://192.168.5.100:8088/). L’interface vous permet de surveiller tous les processus en cours d’exécution au sein du cluster Hadoop.
Cliquez sur le menu “Nodes” pour voir les nœuds actuellement en cours d’exécution sur le cluster Hadoop.
Si vous recherchez des solutions d’hébergement cloud fiables, considérez les services Cloud VPS de Shape.host. Shape.host offre un hébergement cloud évolutif et sécurisé, permettant aux entreprises de traiter et de stocker efficacement les données.