Comment installer Hadoop sur RHEL 8 / Centos 8 Linux

Comment installer Hadoop sur RHEL 8 / Centos 8 Linux

Apache Hadoop est un cadre open source utilisé pour le stockage distribué ainsi que le traitement distribué des mégadonnées sur des grappes d'ordinateurs qui s'exécutent sur des marchandises de marchandises. Hadoop stocke les données dans le système de fichiers distribué Hadoop (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 cadre 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 installerons HDFS (Namenode et Datanode), le fil, MapReduce sur le cluster de nœuds unique en mode pseudo distribué qui est distribué de simulation sur une seule machine. Chaque démon Hadoop tel que HDFS, fil, MapReduce, etc. fonctionnera comme un processus Java séparé / individuel.

Dans ce tutoriel, vous apprendrez:

  • Comment ajouter des utilisateurs pour un environnement Hadoop
  • Comment installer et configurer l'Oracle JDK
  • Comment configurer SSH sans mot de passe
  • Comment installer Hadoop et configurer les fichiers XML liés nécessaires
  • Comment démarrer le cluster Hadoop
  • Comment accéder à Namenode et à ResourceManager Web UI
Architecture HDFS.

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle 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 racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Ajouter des utilisateurs pour l'environnement Hadoop

Créez le nouvel utilisateur et le nouvel groupe à l'aide de la commande:

# useradd hadoop # passwd hadoop 
[root @ hadoop ~] # useradd hadoop [root @ hadoop ~] # passwd hadoop change de mot de passe pour l'utilisateur hadoop. Nouveau mot de passe: Retyper le nouveau mot de passe: PASSWD: Tous les jetons d'authentification mis à jour avec succès. [root @ hadoop ~] # cat / etc / passwd | grep hadoop hadoop: x: 1000: 1000 :: / home / hadoop: / bin / bash 

Installer et configurer l'Oracle JDK

Téléchargez et installez le JDK-8U202-LINUX-X64.RPM Package officiel pour installer l'Oracle JDK.

[root @ hadoop ~] # rpm -ivh jdk-8u202-linux-x64.AVERTISSEMENT RPM: JDK-8U202-LINUX-X64.RPM: en-tête V3 RSA / SHA256 Signature, ID clé EC551F03: Nokey Vérification… ################################ 100%] Préparation… ################################ # ° [100%] Mise à jour / installation… 1: JDK1.8-2000: 1.8.0_202-fcs ################################# [100%] Déballage des fichiers de pot… Outils.pot… plugin.pot… javaws.pot… déploier.pot… rt.pot… JSSE.pot….pot… localdata.pot… 


Après l'installation pour vérifier que le java a été configuré avec succès, exécutez les commandes suivantes:

[root @ hadoop ~] # java -version Java version "1.8.0_202 "Java (TM) SE Runtime Environment (Build 1.8.0_202-b08) Java Hotspot (TM) VM du serveur 64 bits (build 25.202-b08, mode mixte) [root @ hadoop ~] # Mise à jour-alternatives - Config Java Il 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 SSH ouvert et ouvrez le client 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_64 OpenSSL-libs-1.1.1-6.EL8.x86_64 OpenSSL-1.1.1-6.EL8.x86_64 OpenSSH-CLIENTS-7.8p1-3.EL8.x86_64 OpenSSH-7.8p1-3.EL8.x86_64 OpenSSL-PKCS11-0.4.8-2.EL8.x86_64 

Générer des paires de clés publiques et privées avec la commande suivante. Le terminal incitera à saisir le nom du fichier. Presse ENTRER et procéder. Après cette copie, le formulaire de clés publics id_rsa.pub pour autorisé_keys.

$ ssh-keygen -t rsa $ cat ~ /.ssh / id_rsa.pub >> ~ /.ssh / autorisé_keys $ chmod 640 ~ /.SSH / AUTORISED_KEYS 
[hadoop @ hadoop ~] $ ssh-keygen -t rsa générant une paire de clés RSA publiques / privées. Entrez le fichier dans lequel enregistrer la clé (/ home / hadoop /.ssh / id_rsa): répertoire créé '/ home / hadoop /.ssh '. Entrez en phrase de passe (vide pour aucune 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 clé est: sha256: h + llpkajjdd7b0f0je / nfjrp5 / fuejswmmzpjfxoelg hadoop @ hadoop.bac à sable.com L'image Randomart 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 / autorisé_keys [hadoop @ hadoop ~] $ chmod 640 ~ /.SSH / AUTORISED_KEYS 

Vérifiez la configuration SSH sans mot de passe avec la commande:

$ ssh  
[hadoop @ hadoop ~] $ ssh hadoop.bac à sable.com console web: https: // hadoop.bac à sable.com: 9090 / ou https: // 192.168.1.108: 9090 / Dernière connexion: SAT 13 avril 12:09:55 2019 [Hadoop @ Hadoop ~] $ 

Installez Hadoop et configurez les fichiers XML connexes

Télécharger et extraire Hadoop 2.8.5 du site officiel Apache.

# wget https: // archive.apache.org / dist / hadoop / commun / hadoop-2.8.5 / Hadoop-2.8.5.le goudron.GZ # TAR -XZVF HADOOP-2.8.5.le goudron.gz 
[root @ rhel8-sandbox ~] # wget https: // archive.apache.org / dist / hadoop / commun / hadoop-2.8.5 / Hadoop-2.8.5.le goudron.GZ --2019-04-13 11: 14: 03-- https: // archive.apache.org / dist / hadoop / commun / hadoop-2.8.5 / Hadoop-2.8.5.le goudron.GZ Résolution des archives.apache.org (archive.apache.org)… 163.172.17.199 Connexion aux archives.apache.org (archive.apache.org) | 163.172.17.199 |: 443… connecté. Demande HTTP envoyée, en attente de réponse… 200 OK Longueur: 246543928 (235m) [Application / X-GZIP] Enregistrement vers: «Hadoop-2.8.5.le goudron.gz 'hadoop-2.8.5.le goudron.GZ 100% [============================================================ =====================================>] 235.12m 1.47 Mo / s en 2m 53S 2019-04-13 11:16:57 (1.36 Mb / s) - 'Hadoop-2.8.5.le goudron.GZ 'enregistré [246543928/246543928] 

Configuration des variables d'environnement

Modifier le bashrc Pour l'utilisateur Hadoop via la configuration des variables d'environnement Hadoop suivantes:



exporter 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 exporter hadoop_opts = "- djava.bibliothèque.path = $ hadoop_home / lib / natif " 
Copie

Source le .bashrc Dans la session de connexion actuelle.

$ source ~ /.bashrc

Modifier le Hadoop-env.shot fichier qui est dans / etc / hadoop À l'intérieur du répertoire d'installation de Hadoop et effectuez les modifications suivantes et vérifiez si vous souhaitez modifier d'autres configurations.

Exporter 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 " 
Copie

Modifications de configuration dans le site core.fichier xml

Modifier le site de base.xml avec VIM ou vous pouvez utiliser l'un des éditeurs. Le fichier est sous / etc / hadoop à l'intérieur hadoop Répertoire d'accueil et ajouter les entrées suivantes.

  FS.defaultfs hdfs: // hadoop.bac à sable.com: 9000   hadoop.TMP.diron / home / hadoop / hadooptmpdata   
Copie

De plus, créez le répertoire sous hadoop dossier à domicile.

$ mkdir hadooptmpdata 

Modifications de configuration dans le site HDFS.fichier xml

Modifier le site HDFS.xml qui est présent sous le même endroit que je.e / etc / hadoop à l'intérieur hadoop Répertoire d'installation et créez le Namenode / Datanode répertoires sous hadoop répertoire de la maison utilisateur.

$ mkdir -p hdfs / namenode $ mkdir -p hdfs / datanode 
  DFS.réplication 1   DFS.nom.diron fichier: /// home / hadoop / hdfs / namenode   DFS.données.diron fichier: /// home / hadoop / hdfs / datanode   
Copie

Modifications de configuration dans le site mapred.fichier xml

Copier le site mapred.xml depuis site mapred.xml.modèle en utilisant CP commande puis modifier le site mapred.xml placé dans / etc / hadoop sous hadoop Répertoire d'instillation avec les modifications suivantes.

$ cp mapred site.xml.modèle de site mapred.xml 
  mapreduce.cadre.nom fil   
Copie

Modifications de configuration dans le site de fil.fichier xml

Modifier Site de fil.xml avec les entrées suivantes.



  mapreduceyarn.nodemanager.services aux auxiliaires MapReduce_Shuffle   
Copie

Démarrer le cluster Hadoop

Formatez le namenode avant de l'utiliser pour la première fois. Au fur et à mesure que l'utilisateur Hadoop exécute la commande ci-dessous pour formater le namenode.

$ hdfs namenode -format 
[hadoop @ hadoop ~] $ hdfs namenode -format 19/04/13 11:54:10 info namenode.Namenode: startup_msg: / ********************************************* ***********.bac à sable.com / 192.168.1.108 startup_msg: args = [-format] startup_msg: version = 2.8.5 19/04/13 11:54:17 Info namenode.FsNamesystem: DFS.namenode.safemode.Threshold-pct = 0.9990000128746033 19/04/13 11:54:17 Info namenode.FsNamesystem: DFS.namenode.safemode.min.datanodes = 0 19/04/13 11:54:17 info namenode.FsNamesystem: DFS.namenode.safemode.Extension = 30000 19/04/13 11:54:18 Info Metrics.TopMetrics: Nntop Conf: DFS.namenode.haut.fenêtre.nobs.seaux = 10 19/04/13 11:54:18 Info Metrics.TopMetrics: Nntop Conf: DFS.namenode.haut.nobs.Utilisateurs = 10 19/04/13 11:54:18 Info Metrics.TopMetrics: Nntop Conf: DFS.namenode.haut.les fenêtres.Minutes = 1,5,25 19/04/13 11:54:18 Info namenode.FsNamesystem: Retry Cache sur NameNode est activé 19/04/13 11:54:18 Info namenode.FsNamesystem: Retry Cache utilisera 0.03 du tas de tas et de réessayer l'entrée de cache, le temps d'expiration est de 600000 millis 19/04/13 11:54:18 Info util.GSET: Capacité informatique pour la carte NAMENODERETR.GSET: Type de machine virtuelle = 64 bits 19/04/13 11:54:18 Info Util.GSET: 0.029999999329447746% Mémoire max 966.7 Mb = 297.0 KB 19/04/13 11:54:18 Info Util.GSET: Capacité = 2 ^ 15 = 32768 Entrées 19/04/13 11:54:18 Info namenode.FSIMAGE: Nouveau blockpoolid alloué: BP-415167234-192.168.1.108-1555142058167 19/04/13 11:54:18 Info Commun.Stockage: le 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 Utilisation de non-compression 19/04/13 11:54:18 Info namenode.FsimageFormatProtobuf: fichier image / home / hadoop / hdfs / namenode / current / fsimage.CKPT_0000000000000000000 de taille 323 octets enregistrés en 0 seconde. 19/04/13 11:54:18 Info namenode.NnstorageRetentionManager: aller conserver 1 images avec TXID> = 0 19/04/13 11:54:18 Info util.EXITUTIL: Sortie avec statut 0 19/04/13 11:54:18 Info namenode.Namenode: shutdown_msg: / ********************************************* *************** shutdown_msg: Arrêt Namenode à Hadoop.bac à sable.com / 192.168.1.108 ************************************************* *********** / 

Une fois le namenode formaté, démarrez les HDF en utilisant le start-dfs.shot scénario.

$ start-dfs.shot 
[hadoop @ hadoop ~] $ start-dfs.sh partant namenodes sur [Hadoop.bac à sable.com] hadoop.bac à sable.com: Démarrer le namenode, enregistrer à / home / hadoop / hadoop-2.8.5 / Logs / Hadoop-Hadoop-Namenode-Hadoop.bac à sable.com.Hadoop.bac à sable.com: démarrer datanode, connexion vers / home / hadoop / hadoop-2.8.5 / Logs / Hadoop-Hadoop-Datanode-Hadoop.bac à sable.com.OUT DÉMARRAGE Namenodes secondaires [0.0.0.0] L'authenticité de l'hôte '0.0.0.0 (0.0.0.0) «Je ne peux pas être établi. ECDSA Key Finger empreinte est Sha256: E + nfcek / kvnignwdhgfvikhjbwwghiijjkfjygr7nki. Êtes-vous sûr de vouloir continuer à vous connecter (oui / non)? Oui 0.0.0.0: AVERTISSEMENT: Ajouté en permanence '0.0.0.0 '(ECDSA) à la liste des hôtes connus. Hadoop @ 0.0.0.Mot de passe du 0: 0.0.0.0: Démarrage du SecondaryNaMenode, enregistrant à / home / hadoop / hadoop-2.8.5 / Logs / Hadoop-Hadoop-Secondarynamenode-Hadoop.bac à sable.com.dehors 

Pour démarrer les services de fil, vous avez besoin pour exécuter le script de démarrage du fil I.e. démarrage.shot

$ start-yarn.shot 
[hadoop @ hadoop ~] $ start-yarn.sh partant le fil Daemons Démarrage de ResourceManager, enregistrant à / home / hadoop / hadoop-2.8.5 / Logs / Yarn-Hadoop-ResourceManager-Hadoop.bac à sable.com.Hadoop.bac à sable.com: Démarrer Nodemanager, enregistrer à / home / hadoop / hadoop-2.8.5 / Logs / Yarn-Hadoop-Nodemanager-Hadoop.bac à sable.com.dehors 

Pour vérifier que tous les services / daémons Hadoop sont lancés avec succès, vous pouvez utiliser le JPS commande.

$ JPS 2033 Namenode 2340 SecondaryNameNode 2566 ResourceManager 2983 JPS 2139 Datanode 2671 Nodemanager 

Maintenant, nous pouvons vérifier la version Hadoop actuelle que vous pouvez utiliser ci-dessous la commande:

$ Hadoop Version 

ou

Version HDFS $ 
[Hadoop @ Hadoop ~] $ Hadoop Version Hadoop 2.8.5 subversion https: // git-wip-us.apache.org / repos / asf / hadoop.GIT -R 0B8464D75227FCEE2C6E7F2410377B3D53D3D5F8 Compilé par JDU le 2018-09-10T03: 32Z compilé avec Protoc 2.5.0 de Source avec Checksum 9942CA5C745417C14E318835F420733 Cette commande a été exécutée en utilisant / home / hadoop / hadoop-2.8.5 / Share / Hadoop / Common / Hadoop-Common-2.8.5.jar [hadoop @ hadoop ~] $ hdfs version hadoop 2.8.5 subversion https: // git-wip-us.apache.org / repos / asf / hadoop.GIT -R 0B8464D75227FCEE2C6E7F2410377B3D53D3D5F8 Compilé par JDU le 2018-09-10T03: 32Z compilé avec Protoc 2.5.0 de Source avec Checksum 9942CA5C745417C14E318835F420733 Cette commande a été exécutée en utilisant / home / hadoop / hadoop-2.8.5 / Share / Hadoop / Common / Hadoop-Common-2.8.5.pot [hadoop @ hadoop ~] $ 


Interface de ligne de commande HDFS

Pour accéder au 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 / trouvé 2 éléments drwxr-xr-x - hadoop supergroup 0 2019-04-13 11:58 / hadoopdata drwxr-xr-x - hadoop supergroup 0 2019-04-13 11: 59 / TestData 

Accéder au Namenode et au fil du navigateur

Vous pouvez accéder à la fois sur l'interface utilisateur Web pour Namenode et le gestionnaire de ressources de Yarn via l'un des navigateurs comme Google Chrome / Mozilla Firefox.

Namenode Web UI - http: //: 50070

Interface utilisateur Web Nameode. Informations sur les détails HDFS. Navigation du répertoire HDFS.

L'interface Web de gestion des ressources de Yarn (RM) affichera tous les travaux en cours d'exécution sur le cluster Hadoop actuel.

Interface utilisateur du gestionnaire de ressources - http: //: 8088

Interface utilisateur Web Manager Resource Manager (YARN).

Conclusion

Le monde change la façon dont il fonctionne actuellement et les grosses données jouent un rôle majeur dans cette phase. Hadoop est un cadre qui facilite notre LIF tout en travaillant sur de grands ensembles de données. Il y a des améliorations sur tous les fronts. L'avenir est excitant.

Tutoriels Linux connexes:

  • Ubuntu 20.04 Hadoop
  • Choses à installer sur Ubuntu 20.04
  • Comment créer un cluster Kubernetes
  • Comment installer Kubernetes sur Ubuntu 20.04 Focal Fossa Linux
  • Comment installer Kubernetes sur Ubuntu 22.04 Jammy Jellyfish…
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Choses à installer sur Ubuntu 22.04
  • Comment travailler avec l'API WooCommerce REST avec Python
  • Comment gérer les grappes de Kubernetes avec Kubectl
  • Une introduction à l'automatisation Linux, des outils et des techniques