Apache Hadoop est un framework open source utilisé pour le stockage distribué ainsi que le traitement distribué de données volumineuses sur des grappes d'ordinateurs qui s'exécutent sur des matériels de base. Hadoop stocke les données dans Hadoop Distributed File System (HDFS) et le traitement de ces données est effectué à l'aide de MapReduce. YARN fournit une API pour demander et allouer des ressources dans le cluster Hadoop.
Le framework Apache Hadoop est composé des modules suivants :
- Hadoop commun
- Système de fichiers distribué Hadoop (HDFS)
- FIL
- MapReduce
Cet article explique comment installer Hadoop Version 2 sur RHEL 8 ou CentOS 8. Nous allons installer HDFS (Namenode et Datanode), YARN, MapReduce sur le cluster à nœud unique en mode pseudo distribué qui est une simulation distribuée sur une seule machine. Chaque démon Hadoop tel que hdfs, yarn, mapreduce etc. s'exécutera comme un processus java séparé/individuel.
Dans ce didacticiel, vous apprendrez :
- Comment ajouter des utilisateurs pour l'environnement Hadoop
- Comment installer et configurer le JDK Oracle
- Comment configurer SSH sans mot de passe
- Comment installer Hadoop et configurer les fichiers xml associés nécessaires
- Comment démarrer le cluster Hadoop
- Comment accéder à l'interface utilisateur Web NameNode et ResourceManager

Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | Hadoop 2.8.5, Oracle JDK 1.8 |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Ajouter des utilisateurs pour l'environnement Hadoop
Créez le nouvel utilisateur et le groupe à l'aide de la commande :
# useradd hadoop# passwd hadoop
[root@hadoop ~]# useradd hadoop[root@hadoop ~]# passwd hadoopModification du mot de passe de l'utilisateur hadoop.Nouveau mot de passe :Retapez le nouveau mot de passe :passwd :tous les jetons d'authentification ont été mis à jour avec succès.[root@hadoop ~]# cat / etc/passwd | grep hadoophadoop:x:1000:1000::/home/hadoop:/bin/bash
Installer et configurer le JDK Oracle
Téléchargez et installez le package officiel jdk-8u202-linux-x64.rpm pour installer le JDK Oracle.
[root@hadoop ~]# rpm -ivh jdk-8u202-linux-x64.rpmwarning :jdk-8u202-linux-x64.rpm :en-tête V3 RSA/SHA256 Signature, ID de clé ec551f03 :NOKEYVerifying... ## ############################### [100 %]Préparation... ########### ###################### [100 %]Mise à jour/installation... 1:jdk1.8-2000:1.8.0_202-fcs ##### ############################ [100 %]Décompression des fichiers JAR... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar...
Après l'installation pour vérifier que java a bien été configuré, exécutez les commandes suivantes :
[root@hadoop ~]# java -versionjava version "1.8.0_202"Java(TM) SE Runtime Environment (build 1.8.0_202-b08)Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mode mixte)[root@hadoop ~]# update-alternatives --config javaIl y a 1 programme qui fournit 'java'. Commande de sélection ------------------------------------------------* + 1 /usr/java/jdk1.8.0_202-amd64/jre/bin/java
Configurer SSH sans mot de passe
Installez le serveur Open SSH et le client Open SSH ou s'il est déjà installé, il répertorie les packages ci-dessous.
[root@hadoop ~]# rpm -qa | grep openssh*openssh-server-7.8p1-3.el8.x86_64openssl-libs-1.1.1-6.el8.x86_64openssl-1.1.1-6.el8.x86_64openssh-clients-7.8p1-3.el8.x86_64openssh-7.8 p1-3.el8.x86_64openssl-pkcs11-0.4.8-2.el8.x86_64
Générez des paires de clés publiques et privées avec la commande suivante. Le terminal vous demandera d'entrer le nom du fichier. Appuyez sur ENTER
et continuez. Après cela, copiez les clés publiques sous la forme id_rsa.pub
à authorized_keys
.
$ ssh-keygen -t rsa$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys$ chmod 640 ~/.ssh/authorized_keys
[hadoop@hadoop ~]$ ssh-keygen -t rsaGénération d'une paire de clés rsa publique/privée.Entrez le fichier dans lequel enregistrer la clé (/home/hadoop/.ssh/id_rsa):Répertoire créé '/home/hadoop /.ssh'.Entrez la phrase de passe (vide s'il n'y a pas de phrase de passe):Entrez à nouveau la même phrase de passe:Votre identification a été enregistrée dans /home/hadoop/.ssh/id_rsa.Votre clé publique a été enregistrée dans /home/hadoop/.ssh/ id_rsa.pub.L'empreinte digitale de la clé est :SHA256:H+LLPkaJJDD7B0f0Je/NFJRP5/FUeJswMmZpJFXoelg [email protected]'image aléatoire de la clé est :+---[RSA 2048]----+| .. ..++*o .o|| o .. +.O.+o.+|| + . . * +oo==|| . o o . E .oo|| . =.S.* o || . o.o=o || . ..o || .o. || o+. |+----[SHA256]-----+[hadoop@hadoop ~]$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys[hadoop@hadoop ~]$ chmod 640 ~/ .ssh/authorized_keys
Vérifiez la configuration ssh sans mot de passe avec la commande :
$ ssh
[hadoop@hadoop ~]$ ssh hadoop.sandbox.comConsole Web :https://hadoop.sandbox.com:9090/ ou https://192.168.1.108:9090/Dernière connexion :sam. 13 avril 12:09 :55 2019[hadoop@hadoop ~]$
Installez Hadoop et configurez les fichiers xml associés
Téléchargez et extrayez Hadoop 2.8.5 depuis le site officiel d'Apache.
# wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz# tar -xzvf hadoop-2.8.5.tar.gz[root@rhel8-sandbox ~]# wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz--2019-04- 13 11:14:03-- https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gzRésoudre archive.apache.org (archive.apache.org )... 163.172.17.199Connexion à archive.apache.org (archive.apache.org)|163.172.17.199|:443... connected.HTTP request sent, en attente de réponse... 200 OKLength:246543928 (235M) [ application/x-gzip]Enregistrement dans :'hadoop-2.8.5.tar.gz'hadoop-2.8.5.tar.gz 100 %[====================================================================================>] 235.12M 1.47MB/s en 2m 53s2019-04-13 11:16:57 (1.36 MB/s) - 'hadoop-2.8.5 .tar.gz' enregistré [246543928/246543928]Configuration des variables d'environnement
Modifiez le
bashrc
pour l'utilisateur Hadoop via la configuration des variables d'environnement Hadoop suivantes :export HADOOP_HOME=/home/hadoop/hadoop-2.8.5 export HADOOP_INSTALL=$HADOOP_HOME 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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
Sourcez le
.bashrc
dans la session de connexion en cours.$ source ~/.bashrcModifiez le
hadoop-env.sh
fichier qui se trouve dans/etc/hadoop
dans le répertoire d'installation de Hadoop et apportez les modifications suivantes et vérifiez si vous souhaitez modifier d'autres configurations.export JAVA_HOME=${JAVA_HOME:-"/usr/java/jdk1.8.0_202-amd64"} export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/home/hadoop/hadoop-2.8.5/etc/hadoop"}
Modifications de configuration dans le fichier core-site.xml
Modifiez le
core-site.xml
avec vim ou vous pouvez utiliser n'importe lequel des éditeurs. Le fichier est sous/etc/hadoop
à l'intérieur dehadoop
répertoire personnel et ajoutez les entrées suivantes.<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop.sandbox.com:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadooptmpdata</value> </property> </configuration>
De plus, créez le répertoire sous
hadoop
dossier de départ.$ mkdir hadooptmpdataModifications de configuration dans le fichier hdfs-site.xml
Modifiez le
hdfs-site.xml
qui est présent sous le même emplacement, c'est-à-dire/etc/hadoop
à l'intérieur dehadoop
répertoire d'installation et créez leNamenode/Datanode
répertoires soushadoop
répertoire personnel de l'utilisateur.$ mkdir -p hdfs/namenode$ mkdir -p hdfs/datanode<configuration> <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> </configuration>
Modifications de configuration dans le fichier mapred-site.xml
Copiez le
mapred-site.xml
depuismapred-site.xml.template
en utilisantcp
commande puis modifiez lemapred-site.xml
placé dans/etc/hadoop
soushadoop
répertoire d'instillation avec les modifications suivantes.$ cp mapred-site.xml.template mapred-site.xml<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
Modifications de configuration dans le fichier yarn-site.xml
Modifier
yarn-site.xml
avec les entrées suivantes.<configuration> <property> <name>mapreduceyarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
Démarrer le cluster Hadoop
Formatez le namenode avant de l'utiliser pour la première fois. En tant qu'utilisateur hadoop, exécutez la commande ci-dessous pour formater le Namenode.
$ hdfs namenode -format[hadoop@hadoop ~]$ hdfs namenode -format19/04/13 11:54:10 INFO namenode.NameNode :STARTUP_MSG:/******************** *****************************************STARTUP_MSG :nœud de nom de départSTARTUP_MSG :utilisateur =hadoopSTARTUP_MSG :host =hadoop.sandbox.com/192.168.1.108STARTUP_MSG :args =[-format]STARTUP_MSG :version =2.8.519/04/13 11:54:17 INFO namenode.FSNamesystem :dfs.namenode.safemode.threshold-pct =0.999000012874603319/04/13 11:54:17 INFO namenode.FSNamesystem :dfs.namenode.safemode.min.datanodes =019/04/13 11:54:17 INFO namenode.FSNamesystem :dfs.namenode.safemode.extension =3000019/ 04/13 11:54:18 INFO metrics.TopMetrics :NNTop conf :dfs.namenode.top.window.num.buckets =1019/04/13 11:54:18 INFO metrics.TopMetrics :NNTop conf :dfs.namenode. top.num.users =1019/04/13 11:54:18 INFO metrics.TopMetrics :NNTop conf :dfs.namenode.top.windows.minutes =1,5,2519/04/13 11:54:18 INFO namenode .FSNamesystem :Réessayer le cache sur namenode est activé19/04/13 11:54:18 INFO namenode.FS Système de noms :le cache de nouvelle tentative utilisera 0,03 du tas total et le délai d'expiration de l'entrée de cache de nouvelle tentative est de 600 000 millis19/04/13 11:54:18 INFO util.GSet :capacité de calcul pour la carte NameNodeRetryCache19/04/13 11:54:18 INFO util. GSet :type de machine virtuelle =64 bits19/04/13 11:54:18 INFO util.GSet :0,029999999329447746 % de mémoire maximale 966,7 Mo =297,0 Ko19/04/13 11:54:18 INFO util.GSet :capacité =2^15 =32768 entrées19/04/13 11:54:18 INFO namenode.FSImage :nouveau BlockPoolId alloué :BP-415167234-192.168.1.108-155514205816719/04/13 11:54:18 INFO common.Storage :répertoire de stockage /home/hadoop /hdfs/namenode a été formaté avec succès.19/04/13 11:54:18 INFO namenode.FSImageFormatProtobuf :Enregistrement du fichier image /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 sans compression19/04/13 11 :54:18 INFO namenode.FSImageFormatProtobuf :fichier image /home/hadoop/hdfs/namenode/current/fsimage.ckpt_000000000000000000 de taille 323 octets enregistrés en 0 secondes.19/04/13 11:54:18 INFO namenode.NNStorageRetentionM anager :va conserver 1 images avec txid>=019/04/13 11:54:18 INFO util.ExitUtil :sortie avec le statut 019/04/13 11:54:18 INFO namenode.NameNode :SHUTDOWN_MSG :/*** ****************************************************** *******SHUTDOWN_MSG :Arrêt de NameNode sur hadoop.sandbox.com/192.168.1.108**************************** ********************************/Une fois le Namenode formaté, démarrez le HDFS en utilisant le
start-dfs.sh
script.$ start-dfs.sh[hadoop@hadoop ~]$ start-dfs.shDémarrage des namenodes sur [hadoop.sandbox.com]hadoop.sandbox.com :démarrage du namenode, connexion à /home/hadoop/hadoop-2.8.5/logs/hadoop- hadoop-namenode-hadoop.sandbox.com.outhadoop.sandbox.com :démarrage du nœud de données, connexion à /home/hadoop/hadoop-2.8.5/logs/hadoop-hadoop-datanode-hadoop.sandbox.com.outDémarrage des nœuds de noms secondaires [ 0.0.0.0]L'authenticité de l'hôte '0.0.0.0 (0.0.0.0)' ne peut pas être établie. L'empreinte digitale de la clé ECDSA est SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.Êtes-vous sûr de vouloir continuer à vous connecter (oui/non) ? yes0.0.0.0 : Attention :"0.0.0.0" (ECDSA) a été ajouté de manière permanente à la liste des hôtes connus. 2.8.5/logs/hadoop-hadoop-secondairenamenode-hadoop.sandbox.com.outPour démarrer les services YARN, vous devez exécuter le script de démarrage du fil, c'est-à-dire
start-yarn.sh
$ start-yarn.sh[hadoop@hadoop ~]$ start-yarn.shdémarrage des démons de fildémarrage du gestionnaire de ressources, connexion à /home/hadoop/hadoop-2.8.5/logs/yarn-hadoop-resourcemanager-hadoop.sandbox.com.outhadoop.sandbox. com :démarrage de nodemanager, connexion à /home/hadoop/hadoop-2.8.5/logs/yarn-hadoop-nodemanager-hadoop.sandbox.com.outPour vérifier que tous les services/démons Hadoop sont démarrés avec succès, vous pouvez utiliser le
jps
commande.$ jps2033 NameNode2340 SecondaryNameNode2566 ResourceManager2983 Jps2139 DataNode2671 NodeManagerNous pouvons maintenant vérifier la version actuelle de Hadoop, vous pouvez utiliser la commande ci-dessous :
$ version hadoopou
Version $ hdfs[hadoop@hadoop ~]$ hadoop versionHadoop 2.8.5Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 0b8464d75227fcee2c6e7f2410377b3d53d3d5f8Compilé par jdu le 2018-09-10T03:32ZCompilé avec protocole 2.5.0Depuis la source avec la somme de contrôle 9942ca5c745417c14e318835f420733Cette commande a été exécutée à l'aide de /home/hadoop/hadoop-2.8.5/share/hadoop/common/hadoop-common-2.8.5.jar[hadoop@hadoop ~]$ hdfs versionHadoop 2.8.5Subversion https://git-wip-us.apache.org/repos/asf/hadop hadoop/hadoop-2.8.5/share/hadoop/common/hadoop-common-2.8.5.jar[hadoop@hadoop ~]$Interface de ligne de commande HDFS
Pour accéder à HDFS et créer des répertoires en haut de DFS, vous pouvez utiliser HDFS CLI.
$ hdfs dfs -mkdir /testdata$ hdfs dfs -mkdir /hadoopdata$ hdfs dfs -ls /[hadoop@hadoop ~]$ hdfs dfs -ls /Found 2 itemsdrwxr-xr-x - supergroupe hadoop 0 2019-04-13 11:58 /hadoopdatadrwxr-xr-x - supergroupe hadoop 0 2019-04-13 11 :59 /testdataAccéder au Namenode et au YARN depuis le navigateur
Vous pouvez accéder à la fois à l'interface utilisateur Web pour NameNode et au gestionnaire de ressources YARN via l'un des navigateurs tels que Google Chrome/Mozilla Firefox.
Namenode Web UI –
http://<hadoop cluster hostname/IP address>:50070
Interface utilisateur Web Namenode.
Informations détaillées HDFS.
Navigation dans le répertoire HDFS.
L'interface Web YARN Resource Manager (RM) affichera toutes les tâches en cours d'exécution sur le cluster Hadoop actuel.
Interface utilisateur Web du gestionnaire de ressources –
http://<hadoop cluster hostname/IP address>:8088
Interface utilisateur Web du gestionnaire de ressources (YARN).
Conclusion
Le monde change sa façon de fonctionner actuellement et le Big Data joue un rôle majeur dans cette phase. Hadoop est un framework qui nous facilite la vie lorsque nous travaillons sur de grands ensembles de données. Il y a des améliorations sur tous les fronts. L'avenir est passionnant.