Apache Hadoop est un framework logiciel open source écrit en Java pour le stockage distribué et les processus distribués, et il gère la très grande taille des ensembles de données en les distribuant sur des clusters d'ordinateurs.
Plutôt que de s'appuyer sur la haute disponibilité matérielle, les modules Hadoop sont conçus pour détecter et gérer la défaillance au niveau de la couche applicative, vous offrant ainsi un service hautement disponible.
Le framework Hadoop se compose des modules suivants,
- Hadoop Common – Il contient un ensemble commun de bibliothèques et d'utilitaires qui prennent en charge d'autres modules Hadoop
- Hadoop Distributed File System (HDFS) :système de fichiers distribué basé sur Java qui stocke les données, offrant ainsi un débit très élevé à l'application.
- Hadoop YARN – Il gère les ressources sur les clusters de calcul et les utilise pour planifier les applications des utilisateurs.
- Hadoop MapReduce – est un cadre pour le traitement de données à grande échelle.
Ce guide vous aidera à installer Apache Hadoop sur CentOS 7, Ubuntu 18.04 et Debian 9. Ce guide devrait également fonctionner sur Ubuntu 16.04.
Prérequis
Basculez vers l'utilisateur root.
su -
OU
sudo su -
Installer Java
Apache Hadoop nécessite Java version 8 uniquement. Ainsi, vous pouvez choisir d'installer OpenJDK ou Oracle JDK.
LIRE : Comment installer Oracle Java sur CentOS 7 / RHEL 7
LIRE : Comment installer Oracle Java sur Ubuntu 18.04
LIRE : Comment installer Oracle Java sur Debian 9
Ici, pour cette démo, je vais installer OpenJDK 8.
### CentOS 7 / RHEL 7 ### # yum -y install java-1.8.0-openjdk wget### Ubuntu 18.04 / 16.04 &Debian 9 ### # apt update # apt install -y openjdk-8-jdk wget
Vérifiez la version Java.
# java -version
Sortie :
openjdk version "1.8.0_212"Environnement d'exécution OpenJDK (build 1.8.0_212-b04)OpenJDK 64-Bit Server VM (build 25.212-b04, mode mixte)
Créer un utilisateur Hadoop et activer l'authentification sans mot de passe
Il est recommandé de créer un utilisateur régulier pour configurer et exécuter Apache Hadoop. Alors, créez un utilisateur nommé hadoop et définissez un mot de passe.
# useradd -m -d /home/hadoop -s /bin/bash hadoop# passwd hadoop
Une fois que vous avez créé un utilisateur, configurez ssh sans mot de passe sur le système local. Créez une clé ssh à l'aide des commandes suivantes.
# su - hadoop$ ssh-keygen$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys$ chmod 600 ~/.ssh/authorized_keys
Vérifiez la communication sans mot de passe avec le système local. Si vous utilisez ssh pour la première fois, tapez yes pour ajouter des clés RSA aux hôtes connus.
$ ssh 127.0.0.1
Installer Apache Hadoop
Télécharger Hadoop
Vous pouvez visiter la page Apache Hadoop pour télécharger le dernier package Hadoop, ou vous pouvez émettre la commande suivante dans le terminal pour télécharger Hadoop v3.2.0.
$ wget https://www-us.apache.org/dist/hadoop/common/stable/hadoop-3.2.0.tar.gz$ tar -zxvf hadoop-3.2.0.tar.gz $ mv hadoop -3.2.0 hadoop
Installer Hadoop
Hadoop prend en charge trois modes de clusters
- Mode local (autonome) :il s'exécute en tant que processus Java unique.
- Mode pseudo-distribué :chaque démon Hadoop s'exécute dans un processus distinct.
- Mode entièrement distribué :il s'agit d'un véritable cluster multinœud allant de quelques nœuds à un cluster extrêmement volumineux.
Configurer les variables d'environnement
Ici, nous allons configurer Hadoop en mode pseudo-distribué. Pour commencer, définissez les variables d'environnement dans le fichier ~/.bashrc.
exporter JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre ## Modifiez-le en fonction de votre système exporter HADOOP_HOME=/home/hadoop/hadoop ## Modifiez-le en fonction de votre système export HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/binADOexport_PATH=$HOME :$HADOOP_HOMEexport_Appliquer les variables d'environnement à la session en cours.
$ source ~/.bashrcModifier les fichiers de configuration
Modifiez le fichier d'environnement Hadoop.
vi $HADOOP_HOME/etc/hadoop/hadoop-env.shDéfinissez la variable d'environnement JAVA_HOME.
exporter JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jreHadoop possède de nombreux fichiers de configuration, et nous devons les modifier en fonction des modes de cluster que nous avons configurés (pseudo-distribués).
$ cd $HADOOP_HOME/etc/hadoopModifier core-site.xml.
fs.defaultFS hdfs://server.itzgeek.local :9000 Modifiez hdfs-site.xml.
dfs.replication 1 dfs.name.dir fichier :///home/hadoop/hadoopdata/hdfs/namenode dfs.data.dir file:///home/hadoop/hadoopdata/hdfs/datanode Créez les répertoires NameNode et DataNode dans le répertoire personnel de l'utilisateur hadoop.
mkdir -p ~/hadoopdata/hdfs/{namenode,datanode}Modifiez mapred-site.xml.
mapreduce.framework.name fil Modifiez le fichier yarn-site.xml.
yarn.nodemanager.aux-services mapreduce_shuffle Formatez maintenant le NameNode à l'aide de la commande suivante. N'oubliez pas de vérifier le répertoire de stockage.
$ hdfs namenode -formatSortie :
. . .. . .2019-05-12 06:38:42,066 INFO common.Storage :Le répertoire de stockage /home/hadoop/hadoopdata/hdfs/namenode a été formaté avec succès.2019-05-12 06:38:42,169 INFO namenode.FSImageFormatProtobuf :Enregistrement de l'image fichier /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 sans compression2019-05-12 06:38:42,483 INFO namenode.FSImageFormatProtobuf :fichier image /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage .ckpt_0000000000000000000 de taille 401 octets enregistrés en 0 secondes SHUTDOWN_MSG :/*********************************************** *************SHUTDOWN_MSG :Arrêt de NameNode sur server.itzgeek.local/192.168.1.10************************ **************************************/Pare-feu
Autorisez Apache Hadoop à traverser le pare-feu. Exécutez les commandes ci-dessous en tant qu'utilisateur root.
Pare-feuD :
firewall-cmd --permanent --add-port=9870/tcpfirewall-cmd --permanent --add-port=8088/tcpfirewall-cmd --reloadUFW :
ufw autorise 9870/tcpufw autorise le rechargement 8088/tcpufwDémarrez le démon NameNode et le démon DataNode en utilisant les scripts du répertoire /sbin, fournis par Hadoop.
$ start-dfs.shSortie :
Démarrage des namenodes sur [server.itzgeek.local]server.itzgeek.local : Avertissement :Ajout permanent de "server.itzgeek.local,192.168.1.10" (ECDSA) à la liste des hôtes connus.Démarrage des datanodeslocalhost : Avertissement :de manière permanente ajout de 'localhost' (ECDSA) à la liste des hôtes connus.Démarrage des nœuds de noms secondaires [server.itzgeek.local]2019-05-12 06:39:14,171 WARN util.NativeCodeLoader :Impossible de charger la bibliothèque native-hadoop pour votre plate-forme. .. en utilisant les classes Java intégrées, le cas échéantOuvrez votre navigateur Web et accédez à l'URL ci-dessous pour parcourir le NameNode.
http://ip.ad.dre.ss:9870/Démarrez le démon ResourceManager et le démon NodeManager.
$ start-yarn.shSortie :
Démarrage du gestionnaire de ressourcesDémarrage des gestionnaires de nœudsOuvrez votre navigateur Web et accédez à l'URL ci-dessous pour accéder au ResourceManager.
http://ip.ad.dre.ss:8088/Tester le cluster à nœud unique Hadoop
Avant d'effectuer le téléchargement, créons un répertoire sur HDFS.
$ hdfs dfs -mkdir /rajTéléchargeons un fichier dans le répertoire HDFS appelé raj.
$ hdfs dfs -put ~/.bashrc /rajLes fichiers téléchargés peuvent être consultés en accédant à NameNode>> Utilitaires >> Parcourir le système de fichiers dans NameNode.
http://ip.ad.dre.ss/explorer.html#/rajCopiez les fichiers de HDFS vers vos systèmes de fichiers locaux.
$ hdfs dfs -get /raj /tmp/Vous pouvez supprimer les fichiers et répertoires à l'aide des commandes suivantes.
hdfs dfs -rm -f /raj/.bashrchdfs dfs -rmdir /rajConclusion
C'est tout. Vous avez configuré avec succès un cluster Hadoop à nœud unique et testé le système de fichiers hadoop. Veuillez partager vos commentaires dans la section des commentaires.